我知道「自我」的魔力。但是從nodejs看這個片段(不完整)。關於這個和javascript的自我
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;
......
}
這是我的理解,我們必須使用自我創建一個閉包。這裏沒有關閉這些行,但作者在將這個分配給自己後使用這兩個行。這有什麼區別嗎?
我認爲它的使用只是因爲與其他代碼的約定和統一。在一個地方使用'this'可能只是一個疏忽。 – JJJ 2013-04-18 05:18:15
因爲'self'設置爲'this',它們是同一個變量。我不確定作者爲什麼混合這兩個。 – 2013-04-18 05:24:35