我一直在调试我在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;
};
答案 0 :(得分:0)
javascript函数基本上都是javascript对象,所以当这一行:
this.manager.transports[this.id]
执行它基本上是说获取具有键transports
的{{1}}函数/对象中的属性
您可以通过执行以下操作在控制台中对此进行测试:
this.id