2011-01-06 37 views

答えて

4

がメモリを解放する必要があります。

+0

削除についてはどうですか? –

+0

@Grae - それもうまくいくはずです。 – Oded

+1

削除が余分な作業をするので、nullが最も効果的だと思います。私は、オブジェクトが必要に応じて削除されるようにしたい。 –

1

JavaScriptはgarbage collectionですは明示的にオブジェクトを解放する必要があります。 ですdelete variableThatHoldTheObjectまたはvariableThatHoldTheObject = nullを使用できますが、オブジェクトの参照カウントは1だけ減少します。

オブジェクトへの他の参照がまだあるかもしれません。一言で言えば、これをGCに任せておけば、あなたはそれを強制することができないからです。あなたは

deleteコメントに関する

は、変数を削除するので、それが指したオブジェクトへの参照します。その参照カウントがある場合、まだオブジェクトを指すbarどこかでそう0になるまで

var foo = 4; 
foo; // 4 
foo = null; 
foo; // null 
delete foo; 
foo; // ReferenceError 

それでも、唯一の1ずつ参照カウントを減少させることをGCがオブジェクトを収集することはありません、それはしません収集されます。

+0

削除とオブジェクトをnullに設定する違いは何ですか? –

+0

'null'に設定すると、変数の値をnullに設定するだけで、' delete'は変数自体を削除します。私は小さな例で私の答えを更新します。 –

+0

私は自分の目的のために変数をnullに設定する方が良いと思います。これが最速の最善の解決策です。 –

関連する問題