我有一个带有处理事件的函数的类。但是当事件监听器调用处理函数时,this
关键字引用被点击的元素而不是类。我想从处理函数中看到该类的其他变量/函数。
看看:http://jsfiddle.net/cy7uM/1/
(使用FireBug或其他调试器查看console.log消息)
function Class(){
this.hello = "Hello World";
document.getElementById("c").addEventListener("click", this.clickHandler); //doesn't work when clicked
}
Class.prototype.clickHandler = function(){
console.log(this);
alert(this.hello);
}
var myobj = new Class();
myobj.clickHandler(); //works
答案 0 :(得分:2)
试
function Class(){
this.hello = "Hello World";
document.getElementById("c").addEventListener("click", this.clickHandler.bind(this));
}