function ConstructMe(msg) {
    this.message = msg;
}

instances = {
    instance1: new ConstructMe('msg1'),
    instance2: new ConstructMe('msg2'),
    instance3: new ConstructMe('msg3'),
    instance4: new ConstructMe('msg4'),
    instance5: new ConstructMe('msg5')
}


如果我有此构造函数,并在一个对象中构建了它的实例(如上所示),以后如何销毁它们?
我想确保它们不再可访问,而且还要确保它们不再无用。

删除对象会起作用吗?还是实例将仅留在内存中无名的某个地方?

就我而言,我会沿着应用程序中的某些动作创建许多实例,我想确保保持内存整洁,并且不要让事情乱七八糟……

期待您的反馈

最佳答案

JavaScript不能那样工作。这是一种garbage collected语言。从技术上讲,您可以执行以下操作:

delete instances.instance3;


可以从instances对象中删除该属性,但实际上,您几乎不必担心它。在您*之后,JavaScript运行时将负责清理

*从技术上讲,您仍然可以在JavaScript中造成内存泄漏,但是在大多数情况下,您无需担心。

09-25 17:41