2016-06-01 1 views
2

私はJSのコードを書いています。 大きなオブジェクトを取り除くと、JSのメモリがどのように動作するのかを知る必要があります。JavaScriptメモリからの変数をクリア

var a = new Object(); 
a.b = new Object(); 
a.b.c = new Object(); 
a.b.c.d = new Object(); 

a.b = undefined; // Is it delete a.b.c and a.b.c.d or not? 
+1

[JavaScriptガベージコレクションとは何ですか?](http://stackoverflow.com/questions/864516/what-is-javascript-garbage-collection) – Xufox

+0

ありがとうございました。 – askeet

答えて

3

オブジェクトへのポインタがない場合、ガベージコレクションされます。 a.b.cへのポインタがa.bにあるため、a.b.cはガベージコレクトされます。 a.b.c.dと同じ状況です。

4

JavaScriptは自動的にガベージコレクションされます。ガベージコレクタが実行を決定し、そのオブジェクトがそれに適格である場合にのみ、オブジェクトのメモリは再利用されます。

オブジェクトを削除するか、オブジェクトを無効にするか(a.b = undefined;)は、メモリを直接解放することとは関係ありません(間接的に参照を破棄するだけです)。詳細については、memory managementページを参照してください)。

関連する問題