3

何千もの単純なオブジェクトの配列があり、それを処分したいと考えています。

例:

var array = [
   {name:"1"}, {name:"2"}, ..., {name:"32,000"}
]

そして、配列のみを破棄したいです(別の場所にあるオブジェクトへの参照があります)。では、次の例は配列を強制終了するのに十分でしょうか?

例:

var a1 = {name:"1"}, a2 = {name:"2"}, ... , a32000 = {name:"32,000"};

var array = [ a1, a2, ... , a32000 ];

array = null;

または、次のようなことをする必要があります。

for(var index in array) array[index] = null;
array = null;
4

1 に答える 1

10

配列へのすべての参照を削除すると、参照を保持していない配列の要素はすべて解放されます。つまり、ガベージコレクターはそのスペースを再利用できます。

null配列の要素を手動で設定する必要はありません。あなたの最後のループは完全に役に立たない。

要素ではなく配列のスペースを再利用したい場合は、次のようにして配列への参照を削除します。

array = undefined; 

配列が変数ではなくプロパティに格納されている場合、たとえば、として定義されているwindow.array = []場合は、次を使用することもできますdelete

delete window.array; // or yourObject.array

ただし、その配列へのすべての参照を削除する必要があります。

于 2013-02-19T16:21:46.147 に答える