在存储在对象原型中的事件处理程序中保留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