我试过了,但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也不起作用
发布于 2012-04-04 05:16:41
您只能使用delete运算符删除隐式声明的变量,而不能删除使用var声明的变量。可以设置x= null或x= undefined
发布于 2012-04-04 05:12:33
不能删除变量或函数。只有一个对象的属性。您可以简单地指定:
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-04 05:13:34
您不需要在JavaScript中删除对象。在删除对该对象的所有引用后,将对该对象进行垃圾回收。要删除引用,请使用:
x = null;https://stackoverflow.com/questions/10001447
复制相似问题