2016-12-15 88 views
0

我是一個需要克隆一個元素,閱讀它的屬性和其他解析功能的情況,但現在因爲我不做element.parentNode.appendChild(clonedElement)如何刪除此克隆記憶?Javascript:從內存中刪除一個element.cloneNode()

var clonedElement = element.cloneNode(); 

// do some stuff with it 

clonedElement = null; // is this good enough? 

那麼,clonedElement = null;是否足夠清除記憶?

回答

1

如果你想刪除這個變量的參考DOM節點上,使用

element = null; 

由於JavaScript是垃圾回收,您不需要刪除對象本身 他們將被刪除時,有沒有辦法以再次引用它們。

如果被去除DOM元素是參考 - 自由 (沒有引用指向它),然後是 本身是由垃圾收集器拾取以及任何事件的元素 處理程序/聽衆與之相關聯。

如果仍有指向所述元素的引用,則該元素及其事件偵聽器保留在內存中。

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

removeChilds(element) ; 
element=null;