JS类使用事件监听器

时间:2014-03-26 16:14:17

标签: javascript class this event-listener

我有一个带有处理事件的函数的类。但是当事件监听器调用处理函数时,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

1 个答案:

答案 0 :(得分:2)

function Class(){
    this.hello = "Hello World";

    document.getElementById("c").addEventListener("click", this.clickHandler.bind(this));
}