这段代码跟循环引用存在关联吗?现代浏览器中,在不需要继续监听click的时候,还需要调用removeEventListener吗?
var element = document.getElementById('button');
function onClick(event) {
element.innerHTML = 'text';
}
element.addEventListener('click', onClick);
这段代码跟循环引用存在关联吗?现代浏览器中,在不需要继续监听click的时候,还需要调用removeEventListener吗?
var element = document.getElementById('button');
function onClick(event) {
element.innerHTML = 'text';
}
element.addEventListener('click', onClick);
10 回答11.7k 阅读
6 回答7.1k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
1.循环引用的情况很多,但你这个不是。循环引用的情况可参考:Circular Reference in JavaScript
2.如果你有销毁时机,一定要记得主动
removeEventListener
。通常来说绑定事件的DOM销毁后,事件监听也会被销毁。但不同浏览器,比如手机浏览器,不同的内存回收机制,可能带来的结果会有所区别。为了避免不必要的麻烦,能主动销毁就主动销毁。