嗨,我正在构建一个 angularjs服务,它将通过socket.io使用websockets与后端(node.js)进行通信.我在网上找到了一段代码,但我不太明白它是如何工作的.特别是在“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背叛了对未命名变量的厌恶.变量arguments引用传递给函数的参数数组.你看到的是角度代码抓取函数参数的数组并将它们传递给apply. 
  
  
 function(myVar1, myVar2){
    console.log(arguments.length);
} 
 输出2.
资料来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments
