删除节点后的javascript事件处理程序

abd*_*ziq 5 javascript

如果我在javascript中的任何元素上添加事件处理程序

var link = document.createElement("a");

document.body.appendChild(link);


link.addEventListner("click",function(){

     alert("do something");

});
Run Code Online (Sandbox Code Playgroud)

然后我删除链接

link.parrentNode.removeChild(link);
Run Code Online (Sandbox Code Playgroud)

然后我附加到链接的事件将被删除或将保留在内存中(有点混淆事件存储在内存中多长时间)或者我应该首先删除事件处理程序然后我删除链接节点.

nik*_*nik 1

在 javascript 函数表达式(在您的情况下是事件绑定)中分配一个对象并因此消耗内存。您应该将其移除或妥善处理。检查此链接,其中详细解释了内存管理。

Js内存管理

检查垃圾收集部分。