html :
b.onclick = function(){
var sayHello = function (){
console.log('你好');
};
c.removeEventListener('click' , sayHello , false);
c.addEventListener('click' , sayHello , false);
}
按钮 b , 按钮 c 。 点击一下按钮b 给按钮 c 绑定事件 。
点击按钮b三次 , 再点击一下按钮 c 。 提示了三个 '你好'
如何做到只提示一个 '你好'
addEventListener本来就是可以绑定多个事件的,你调用了三次就绑定了三个事件。
要removeEventListener必须要传入绑定的时候的同一个函数。你按钮b的事件每次都重新创建了一个sayHello的函数,每次调用的sayHello都是不同的函数。你removeEventListener自然就不起作用了。
不要把你不懂的东西叫做“弊端”,你自己没有理解它的特性就不要妄加批评。