1

我想知道当这个对象不再被使用时如何从内部删除一个对象。

例如 :

var MyObject = function () {
    return {
        'some': function() {...},
        'actions': function() {...},
        'destroy': function() {
            this = null; // throws a "ReferenceError: Invalid left-hand side in assignment"
        },
    }
}

// Doing so, I would be able to :
var obj = new MyObject();
obj.some();

// And when I have finished :
obj.destroy();

其背后的原因是我无法从外部销毁它(对象是在 DOM 元素上“单击”时创建的,但是当您单击其他地方时它会被销毁,因此创建的范围(在“onClick " 方法)在我想删除它的地方不可用。

我怎样才能做到这一点?

4

1 回答 1

1

JavaScript 根本不能那样工作。事实上,你不能破坏任何对象。您可以做的唯一一件事是确保您没有对对象的任何引用,这将使其符合 JS 运行时的垃圾收集条件。如果您发布更完整的代码片段,我们可以告诉您是否有内存泄漏,但如果您已经.off为每个都做了相应的操作.on并将任何引用变量设置为null,那么这就是您可以并且应该在 JavaScript 中做的全部范围.

于 2013-04-05T06:07:30.337 回答