封闭中的javaScript“this”参数

时间:2017-06-15 13:28:53

标签: javascript closures

我现在面临一个js闭包问题。在下面的代码中,我试图将一个事件处理程序“getNum”绑定到按钮,问题是这个处理程序是一个对象中的一个属性,所以我在一本书中读到它,它说我应该把我的处理程序放在一个关闭函数就像波纹管一样,问题是当我把处理程序放在一个匿名函数中时,我并没有真正理解为什么“this”参数指向正确的对象;为什么将“event”参数传递给该函数,“event”参数引用的是什么,当我点击按钮时它是事件对象吗?

this.num = 9;
var myObj = {
    num : 81;
    getNum : function(){return this.num;}
}
var btn = document.getElementById("my-btn");

// btn.addEventListener("click",myObj.getNum);  this doesn't work cause "this" point to the btn object,which doesn't have num attribute.

btn.addEventListener("click",function(event){
      myObj.getNum(event);
    });//worked, but I don't know why.

0 个答案:

没有答案