0

それでは、配列があるとしましょう:

var array = [1, 2, 3, 4, 5, 6]

次に、その配列への参照を新しい空の配列に再割り当てします。

array = [];

元の配列への参照がなくなったので、元の配列はメモリから削除されていますか?

4

2 に答える 2

0

Probably not immediately (as part of the reassignment), but so long as the reference count to it has dropped to 0 (there is no other variable pointing to that array), it can be garbage collected.

于 2012-10-04T02:23:22.100 に答える
0

答えはノーです(変数名が異なる場合[質問を変更したことがわかります])、質問に追加された新しい例のようにイエスです。var 名が異なる場合、必要に応じて元の配列を null にすることでメモリを解放できますが、どちらもスペースを消費します。配列 2 では、最初の配列の内容で実際に新しい配列を作成しています。オブジェクト (js の連想配列) は別の話ですが、上記の参照規則に従います。

同じスコープで同じ var 名を使用する場合は、はい。2 番目の呼び出しは、最初のシナリオからメモリを解放します。

于 2012-10-04T02:28:38.740 に答える