如何在JavaScript中删除用`new`创建的对象?

时间:2014-10-19 17:03:31

标签: javascript object memory-management new-operator delete-operator

我是JavaScript新手,来自C ++背景。这听起来很愚蠢,但我无法在JavaScript中找到如何删除使用new创建的对象。

以下是一个例子:

function Article (id) {
    this.content = db.get('article', "id:" + id);
    ...
}

var article = new Article(5);

Article的每个实例在从数据库获取数据时分配内存(在我的文章内容中)。这导致我的应用程序快速增长到内存使用量的千兆字节。

如何在JavaScript中释放内存?我发现delete但它似乎删除了数组和哈希元素而不是对象。

2 个答案:

答案 0 :(得分:3)

删除对该对象的所有引用,它将被垃圾收集(当JS引擎进行一些垃圾收集时)。

article = undefined; // or some other value

答案 1 :(得分:0)

它会在将来的某个时刻通过垃圾收集自动发生,或者永远不会发生。与C ++中的RAII不同,它是非确定性的。