假设我有以下代码:
function foo(myobj, otherobj){
var obj = {};
obj.first = myobj; // a really big object
obj.second = otherobj; // another big object
// some work with "obj"
delete obj; // can't do that
}
我在Javascript中已经阅读了很多关于delete
的内容,但我仍然无法理解它。我知道我只能删除没有DontDelete的对象和变量的属性。在上面的代码中,我显然无法删除obj
,但是值得删除它的属性:
function foo(myobj, otherobj){
var obj = {};
obj.first = myobj; // a really big object
obj.second = otherobj; // another big object
// some work with "obj"
delete obj.first;
delete obj.second;
// obj is now empty "{}"
}
我有以下问题:
我是否真的通过删除操作来帮助浏览器?
我是否只删除了obj
对myobj
的引用以及otherobj
提供的参数,obj.first
和obj.second
是{的副本{1}}和myobj
我实际上删除了一些有意义的内容?
假设我可以访问原始otherobj
和myobj
,而不是他们的参考资料。由于我不再需要它们,如何删除它们?
如果我的目标是提升效果,何时使用otherobj
?有什么东西能产生重大影响吗?
如果我确保不留下循环引用以便垃圾收集器可以完成其工作,我会没事吗?这是delete
的用途吗?
我很感激有关delete
的任何信息,即使它与我的问题无关。 :)