我在寻找Node.js内部,我遇到了以下方法定义
//File: node/lib/net.js
Socket.prototype.listen = function() {
debug('socket.listen');
var self = this;
self.on('connection', arguments[0]);
listen(self, null, null, null);
};
在Socket对象的listen
方法中,调用一个(看似)全局函数,也称为listen
。
listen(self, null, null, null);
这个javascript方法/函数定义在哪里?我已经搜索了代码库中的所有javascript文件,似乎无法找到它。
(除了跟踪节点的执行路径并试图理解系统深处使用的模式之外,我没有在这里尝试完成特定的任务。)
答案 0 :(得分:4)
https://github.com/joyent/node/blob/b80d11d46b3b2abff1cf1fe887971ea50fd7d497/lib/net.js#L1088
这只是一个在文件中声明较低的函数,由于函数提升而在javascript中正常。
答案 1 :(得分:4)
它在net.js
中定义得更远。截至0.11.5,it's at line 1089:
function listen(self, address, port, addressType, backlog, fd) {
if (!cluster) cluster = require('cluster');
if (cluster.isMaster) {
self._listen2(address, port, addressType, backlog, fd);
return;
}
// ...
}