之前看红宝书,第十三章,解除事件引用,代码是这样子的,有点不太明白。
// 解除引用失败
var btn = document.getElementById('myBtn')
btn.addEventListener(
'click',
function() {
alert(this.id)
},
false
)
btn.removeEventListener(
'click',
function() {
alert(this.id)
},
false
)
//解除引用成功
var btn = document.getElementById("myBtn");
var handler = function(){
alert(this.id);
};
btn.addEventListener("click", handler, false);
btn.removeEventListener("click", handler, false); // 有效!
最近看红宝书,第五章Function引用类型写到
"函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定"
上文中引用不成功,是因为又重新生声明了一个对象,两个function虽然貌似一样,但其实指向的内存地址不一样,所以解除引用不成功