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