我知道“自我”的魔力。但是看看 nodejs 的这个片段(不完整)。
Socket.prototype.connect = function(options, cb) {
......
var self = this;
var pipe = !!options.path;
if (this.destroyed || !this._handle) {
this._handle = pipe ? createPipe() : createTCP();
initSocketHandle(this);
}
if (typeof cb === 'function') {
self.once('connect', cb);
}
timers.active(this);
self._connecting = true;
self.writable = true;
......
}
我的理解是我们必须使用 self 来创建一个闭包。这些行中没有闭包,但作者在将其分配给 self 后使用了这两个闭包。这里有什么不同吗?