在存儲在對象原型中的事件處理程序中保留this
JavaScript引用的正確方法是什麼?我想遠離創建像'_this'或'that'這樣的臨時變量,我不能使用像jQuery這樣的框架。我看到很多人談論使用「綁定」功能,但不確定如何在我的情況下實現它。在JavaScript原型事件處理程序中保留'this'引用
var Example = function(foo,bar){
this.foo = foo;
this.bar = bar;
};
Example.prototype.SetEvent = function(){
this.bar.onclick = this.ClickEvent;
};
Example.prototype.ClickEvent = function(){
console.log(this.foo); // logs undefined because 'this' is really 'this.bar'
};
我*討厭*創建一個引用這個叫做「那個」(a Crockford)。我更喜歡「實例」(la Stefanov)或「我」(一個ExtJS) –
實際上,我討厭創建'this'引用,不管它們是如何命名的。但同意,'這不是最好的命名。 –
我使用'self',但最近發現這是與WebWorkers中頂級屬性的名稱衝突。並不是說你不能有相同的名字,但它確實會讓事情混淆不清。另外,我發現'that'這個名字與'this'相反' – Matt