試してみましたが、うまくいき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
また動作しません
試してみましたが、うまくいき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
また動作しません
暗黙的に宣言された変数を削除するには、delete 演算子のみを使用できますが、var で宣言された変数は削除できません。x = null または x = undefined を設定できます
変数または関数は削除できません。オブジェクトのプロパティのみ。以下を簡単に割り当てることができます。
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
JavaScript でオブジェクトを削除する必要はありません。オブジェクトへのすべての参照が削除された後、オブジェクトはガベージ コレクションされます。参照を削除するには、次を使用します。
x = null;
Javascript のグローバル名前空間からオブジェクトを削除することはできません。
delete
内でオブジェクトを作成できますが、それ自体はできx
ませんx
。
x = null;
またはを試してくださいx = undefined;
。