2016-12-15 7 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

あなたは

element = null; 

を使用して、DOMノードへの変数の参照を削除したい場合はJavascriptがガベージコレクトですので、あなたがオブジェクトを削除する必要はありません自体は 方法がないとき、彼らは削除されますもうそれらを参照してください。

しかし

除去するDOM要素が基準フリー (何らの言及は、それを指していない)[はい 自体は、任意のイベントと同様に、ガベージコレクタによってピックアップされた要素 ハンドラ/リスナーの場合それに関連する。

上記の要素を指し示す参照がある場合は、 要素とそのイベントリスナーがメモリに保持されます。

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

removeChilds(element) ; 
element=null; 
関連する問題