javascript - on,addEventListener 绑定的事件会随着DOM元素的销毁而在内存中被销毁吗?

 

问题描述:

<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(DOM0DOM2两种方式)。当foo函数执行完毕,DOM元素被销毁,同时引用linkgc。请问handleClick事件处理程序是否也会被gc呢?是否需要采用link.onclick=null
link.removeEventListener方式对事件处理程序解绑?


 

第 1 个答案:

js一个元素从DOM中被删除后,他所绑定的事件浏览器是如何处理的?


 

第 2 个答案:

与我这个问题有些类似 事件监听的dom重新生成了,但没有做事件移除, javascript还会内存泄漏吗?


javascript - Next.js 中如何添加Postcss插件:因为制作的网站要兼容IE9,因为需要让IE9支持css中的flex功能,使用了flexibility来处理,于是需要用到postcss-flexibility这个pos ...