Angularjs socket.io服务
您好我build立一个angularjs服务,将通过socket.io使用websockets与后端(node.js)沟通。 我在网上find了一小段代码,但是我不太明白它是如何工作的。 特别是在“var args = arguments”下面的行上。 帮帮我?
angularjs_service.js
app.factory('socket', function ($rootScope) { var socket = io.connect(); return { on: function (eventName, callback) { socket.on(eventName, function () { var args = arguments; $rootScope.$apply(function () { callback.apply(socket, args); }); }); }, emit: function (eventName, data, callback) { socket.emit(eventName, data, function () { var args = arguments; $rootScope.$apply(function () { if (callback) { callback.apply(socket, args); } }); }) } }; });
这是JavaScript背叛了未命名variables的地方。 variablesarguments
指的是传递给函数的参数数组。 你看到的是angular码抓取函数参数的数组,并传递它们来应用。
function(myVar1, myVar2){ console.log(arguments.length); }
会输出2
。
来源: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments