【发布时间】:2014-10-16 22:15:50
【问题描述】:
我想知道从内存中完全取消引用 JavaScript 对象的正确方法。确保它被删除而不会在内存中悬空,并且垃圾收集器会删除该对象。
当我看到这个问题时Deleting Objects in JavaScript。说明如果删除对象的所有引用,GC 会将其从内存中删除。我想知道如何从同时具有方法和属性的对象中删除引用。
假设您有一个使用function 创建的对象,并且该对象同时具有方法和属性。说它看起来像这样:
function myObject(x, y) {
this.x = x;
this.y = y;
this.myMethod = function() {
// method code
}
}
var myInstance = new myObject(24, 42) // How to remove this completely?
注意:这是一个例子,我知道你可以使用prototype作为方法。
我知道我不能只说delete myInstance。所以在这种情况下要完全删除对象,我需要在它的所有属性上调用delete,然后在实例上调用delete,像这样吗?
delete myInstance.x;
delete myInstance.y;
delete myInstance; // I'm not sure if this is necessary.
这行得通吗?还是我还需要delete 它的方法(如果是这样的话)?
或者也许有更好更简单的方法来做到这一点?
【问题讨论】:
标签: javascript object memory-management garbage-collection dereference