如何用javascript删除完整对象?

时间:2012-04-03 21:10:46

标签: javascript json object

我试过了,但是delete不起作用。

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

alert(x.y);
delete x;

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

如何删除完整对象的crossbrowser?

编辑: x = null也无效

5 个答案:

答案 0 :(得分:4)

您无需在JavaScript中删除对象。在删除对它的所有引用后,将对象进行垃圾回收。要删除引用,请使用:

x = null;

答案 1 :(得分:4)

您只能使用delete运算符来删除隐式声明的变量,而不能删除使用var声明的变量。您可以设置x = null或x = undefined

答案 2 :(得分:3)

您无法删除变量或函数。只有对象的属性。您可以简单地指定:

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

答案 3 :(得分:2)

您无法在Javascript中从全局命名空间中删除对象。

您可以在deletex个对象,但不能x。{/ p>

答案 4 :(得分:1)

尝试x = null;x = undefined;