【问题标题】:javascript object removejavascript 对象删除
【发布时间】:2010-01-18 10:09:08
【问题描述】:

如果我的问题没有多大意义,请原谅。

我正在使用 javascript 创建一个 dom 元素 为此,我创建了一个对象 (obj ={}) 并随时填写属性,其中之一是要创建的 dom 元素。一旦创建了元素并将其附加到文档中,我就不需要该对象占用内存中的任何空间,所以我想我应该删除它。 我该怎么做呢? 谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    对象一进入 DOM 就将存在于内存中,并且持有它的 obj 属性实际上持有对它的引用,而不是副本。据我所知,将引用保留为 obj 的属性所需的内存应该可以忽略不计。在这种情况下,我根本不用担心删除它。

    【讨论】:

    • 如果您使用 jQuery 插件,例如 DataTables,那么它确实很重要:例如,如果您打算重新初始化这样的表,则没有干净的方法去做吧。如果您对有关此控件及其卸载问题的更多详细信息感兴趣,请参阅here
    【解决方案2】:

    方法如下:

    my_var = null;
    
    //or remove it
    delete my_var;
    

    【讨论】:

    • 如果对象仅被函数中的“this”引用怎么办? “删除这个”似乎不起作用
    • 我不确定他是否提到过这个。
    • 我认为你不能从它的一个成员函数中删除一个对象。保留对它的引用并在其他地方删除它
    • 对于delete 所做的事情有一个普遍的误解:它不像C++'delete,即它不会触发对象销毁;它所做的只是从对象中删除属性——它根本不适用于局部变量; delete foo.bardelete foo[42] 没问题,而如果 foo 是局部变量,delete foo 将什么也不做(甚至在严格模式的 ECMAScript 5 中抛出语法错误)
    【解决方案3】:

    如果您将对象定义为类似语言环境

    var obj ={}

    它会在函数结束时自动取消定义。

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 2018-04-20
      • 2018-07-28
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2016-05-19
      相关资源
      最近更新 更多