自我删除对象

时间:2014-07-29 10:53:12

标签: javascript object self-reference

我目前正在创建一个项目,其中每个可见元素都由javascript对象表示。

我需要在这个对象中使用一个方法,这个方法可以让我销毁它。

有一个对象的例子:

var example = function(some_args){
    var self = this;
    var references = {}; //this holds references to inputs within given view
    this.createView = function(){
        //here I`m doing "stuff" like filling innerHTML of container
        //creating event delegate, etc.
    }
    this.destroy = function(){
        self.elements["box"].parentNode.removeChild(self.elements["box"]);  //box is a reference to container element
        self.elements = null;
        delete self;
    }

现在,我的问题是:为了完全销毁这个对象,我是否正在做所有事情? 我没有任何其他对象或元素的引用。

编辑: 我看到你们中的一些人没有理解我的问题。 Barmar说得对,我感激不尽:)

我知道GC,写“我正在破坏对象”比“我删除对象的最后一个引用,因此GC可以处理它”更容易:)

具体而言。考虑到我正在删除对象的最后一个引用,作为该对象的一部分的内部函数 - 还有什么我应该照顾的吗?或者我的代码完全正常,对象将被视为垃圾?

2 个答案:

答案 0 :(得分:1)

您无法明确处理JS中对象的生命周期。

所以对于给定的问题:

  

我为了完全破坏这个对象,我在做什么?

唯一的答案是:

你不能这样做,因为JS中的一个对象只能被GC销毁,你无法与之交互。当一个物体可以到达时 - 它就活了。如果不是 - 那么它就是" Schroedinger's object"。

答案 1 :(得分:0)

Javascript有垃圾收集器,因此您不需要销毁该对象。你也不能