0

試してみましたが、うまくいきdeleteません。

var x = {"y":42,"z":{"a":1,"b":[1,2,3]}};

alert(x.y);
delete x;

alert(x.y); // still shows '42'

完全なオブジェクト クロスブラウザを削除するには?

編集: x = nullまた動作しません

4

5 に答える 5

5

暗黙的に宣言された変数を削除するには、delete 演算子のみを使用できますが、var で宣言された変数は削除できません。x = null または x = undefined を設定できます

于 2012-04-03T21:16:41.323 に答える
4

変数または関数は削除できません。オブジェクトのプロパティのみ。以下を簡単に割り当てることができます。

x = null;

その値をクリアしたい場合。

更新: 関数に関する明確化:

>> function f1() {console.log("aa");}
>> f1();
aa
>> delete f1;
false
>> f1();
aa

ただし、グローバル関数をウィンドウ属性として宣言すると、それを削除できます。

>> f1 = f1() {console.log("aa");}
>> delete window.f1;
true

変数についても同様です。

>> a = "x";
>> console.log(a);
x
>> delete window.a;
true
>> console.log(a);
ReferenceError: a is not defined

しかし:

>> var a = "x";
>> console.log(a);
x
>> delete a;
false
>> console.log(a);
x
于 2012-04-03T21:12:32.883 に答える
4

JavaScript でオブジェクトを削除する必要はありません。オブジェクトへのすべての参照が削除された後、オブジェクトはガベージ コレクションされます。参照を削除するには、次を使用します。

x = null;
于 2012-04-03T21:13:34.037 に答える
2

Javascript のグローバル名前空間からオブジェクトを削除することはできません。

delete内でオブジェクトを作成できますが、それ自体はできxませんx

于 2012-04-03T21:13:23.140 に答える
1

x = null;またはを試してくださいx = undefined;

于 2012-04-03T21:14:19.640 に答える