我对JavaScript的delete
运算符有些困惑。采取以下代码:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
执行完这段代码后,obj
is null
,但foo
仍指的是一个完全像的对象obj
。我猜这个对象是foo
指向相同的对象。
这使我感到困惑,因为我希望编写会delete obj
删除obj
指向内存中的对象,而不仅仅是变量obj
。
这是因为JavaScript的垃圾回收工作在保留/释放的基础,所以,如果我没有指向对象的任何其他变量,它会从内存中清除?
(顺便说一下,我的测试是在Safari 4中完成的。)
var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;
未删除对象的情况下删除对象键的操作,请检查obj
删除用法:delete obj.helloText
然后检查foo now foo is an empty object
delete
不是用于删除javascript中delete
的对象。用于删除对象密钥。在您的情况下var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;
,该对象没有被删除。检查obj
。接下来,运行delete obj.helloText
,您foo
现在可以看到指向空object。“”“