我现在面临一个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.