当不需要对象本身时,是否值得删除对象属性?

时间:2016-07-21 14:43:21

标签: javascript object javascript-objects

假设我有以下代码:

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 "{}"
}

我有以下问题:

  • 我是否真的通过删除操作来帮助浏览器?

  • 我是否只删除了objmyobj的引用以及otherobj提供的参数,obj.firstobj.second是{的副本{1}}和myobj我实际上删除了一些有意义的内容?

  • 假设我可以访问原始otherobjmyobj,而不是他们的参考资料。由于我不再需要它们,如何删除它们?

  • 如果我的目标是提升效果,何时使用otherobj?有什么东西能产生重大影响吗?

  • 如果我确保不留下循环引用以便垃圾收集器可以完成其工作,我会没事吗?这是delete的用途吗?

我很感激有关delete的任何信息,即使它与我的问题无关。 :)

0 个答案:

没有答案