<body>
<div id="wrap">
<span id="link">点击</a>
</div>
<script>
function foo() {
let wrap = document.getElementById('wrap'),
link = document.getElementById('link');
function handleClick() {
alert('clicked');
}
link.onclick = handleClick; //
// link.addEventListener('click', handleClick, false);
wrap.removeChild(link);
}
foo();
</script>
</body>
如上述代码,在foo函数中为link指向的DOM元素,绑定事件处理程序handleClick
(DOM0
和DOM2
两种方式)。当foo函数执行完毕,DOM元素被销毁,同时引用link
被gc
。请问handleClick
事件处理程序是否也会被gc
呢?是否需要采用link.onclick=null
或link.removeEventListener
方式对事件处理程序解绑?
js一个元素从DOM中被删除后,他所绑定的事件浏览器是如何处理的?