我需要克隆一个元素,读取它的属性和其他解析功能,但现在我不做element.parentNode.appendChild(clonedElement)
如何从内存中删除此克隆?
var clonedElement = element.cloneNode();
// do some stuff with it
clonedElement = null; // is this good enough?
那么,clonedElement = null;
是否足以从记忆中清除它?
答案 0 :(得分:1)
如果要删除变量对DOM节点的引用,请使用
element = null;
由于Javascript是垃圾收集的,因此您不需要自己删除对象 当无法再引用它们时,它们将被移除。
但
如果删除的DOM元素是无参考的 (没有引用指向它)然后是 垃圾收集器以及任何事件都会拾取元素本身 与之相关的处理者/听众。
如果有引用仍然指向所述元素, 元素及其事件侦听器保留在内存中。
var removeChilds = function (node)
{
var last;
while (last = node.lastChild) node.removeChild(last);
};
removeChilds( element ) ;
element=null;