微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – Angularjs socket.io服务

嗨,我正在构建一个 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,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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐