10

Hereで述べたように、JavaScript で既存の配列を空にする (そして新しい配列を割り当てない) 最も効率的な方法は、次を使用することです。

array.length = 0;

プレーンなオブジェクトでも同じ操作が機能しますか? (別名「連想配列」または「辞書」) そうでない場合、既存の JavaScript オブジェクトを空にする最も効率的な方法は何ですか?

新しいものを割り当てることは、ガベージ コレクターに余分な作業をプッシュし、ヒープに新しいメモリを割り当てるため、最良の選択肢ではないと思いますが、間違っている可能性があります。

少なくとも Chrome と Firefox で動作するソリューションが必要です。

4

1 に答える 1

27

これを行う最も簡単な方法は、新しいオブジェクトを作成することです。とにかく、すべてのプロパティをガベージコレクションすることになります。

var foo = {
    a: 5,
    b: 4
};
foo = {};

プロパティを繰り返し処理して、個別に削除することもできます。

for (var prop in foo) {
    if (foo.hasOwnProperty(prop)) {
        delete foo[prop];
    }
}

また、言い回しの問題として、JavaScriptには連想配列ではなく、プロパティを持つオブジェクトあることも指摘しておく価値があります。

于 2013-03-03T20:01:58.230 に答える