Javascript:从内存中删除element.cloneNode()

时间:2016-12-15 11:13:27

标签: javascript clonenode

我需要克隆一个元素,读取它的属性和其他解析功能,但现在我不做element.parentNode.appendChild(clonedElement)如何从内存中删除此克隆?

var clonedElement = element.cloneNode();

// do some stuff with it

clonedElement = null; // is this good enough?

那么,clonedElement = null;是否足以从记忆中清除它?

1 个答案:

答案 0 :(得分:1)

如果要删除变量对DOM节点的引用,请使用

element = null;

由于Javascript是垃圾收集的,因此您不需要自己删除对象 当无法再引用它们时,它们将被移除。

如果删除的DOM元素是无参考的 (没有引用指向它)然后是 垃圾收集器以及任何事件都会拾取元素本身 与之相关的处理者/听众。

如果有引用仍然指向所述元素, 元素及其事件侦听器保留在内存中。

var removeChilds = function (node) 
{
    var last;
    while (last = node.lastChild) node.removeChild(last);
};

removeChilds( element ) ;
element=null;