循环引用、内存管理

这段代码跟循环引用存在关联吗?现代浏览器中,在不需要继续监听click的时候,还需要调用removeEventListener吗?

var element = document.getElementById('button');
function onClick(event) {
    element.innerHTML = 'text';
}
element.addEventListener('click', onClick);
阅读 1.6k
1 个回答

1.循环引用的情况很多,但你这个不是。循环引用的情况可参考:Circular Reference in JavaScript
2.如果你有销毁时机,一定要记得主动removeEventListener。通常来说绑定事件的DOM销毁后,事件监听也会被销毁。但不同浏览器,比如手机浏览器,不同的内存回收机制,可能带来的结果会有所区别。为了避免不必要的麻烦,能主动销毁就主动销毁。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题