带括号的JS函数调用

时间:2013-07-25 18:10:25

标签: javascript syntax socket.io

我一直在调试我在socket.io上遇到的一些问题,偶然发现了这个问题(lib/transport.js第345行):

  var current = this.manager.transports[this.id];

然而

typeof this.manager.transports = [Function]

,声明如下(lib/manager.js第928行):

Manager.prototype.transports = function (data) {
    //some stuff, returns an array
}

有人可以解释这里发生了什么吗?是否缺少一些括号transports()[this.id]

谢谢!

更新 这是函数的代码

Manager.prototype.transports = function (data) {
  var transp = this.get('transports')
   , ret = [];

   for (var i = 0, l = transp.length; i < l; i++) {
     var transport = transp[i];

     if (transport) {
       if (!transport.checkClient || transport.checkClient(data)) {
         ret.push(transport);
       }
     }
   }

 return ret;
};

1 个答案:

答案 0 :(得分:0)

javascript函数基本上都是javascript对象,所以当这一行:

this.manager.transports[this.id]

执行它基本上是说获取具有键transports的{​​{1}}函数/对象中的属性

您可以通过执行以下操作在控制台中对此进行测试:

this.id