销毁构造函数实例
Destroy constructor instances
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 不是这样工作的。它是一种垃圾回收语言。从技术上讲,您可以执行以下操作:
delete instances.instance3;
这应该从instances
对象中删除属性,但实际上您很少需要担心它。JavaScript 运行时将在您之后负责清理*
*从技术上讲,您仍然可以在javascript中创建内存泄漏,但在绝大多数情况下,您无需担心。
JavaScript 内存管理的核心概念是可访问性的概念。
-
假定一组可区分的对象是可访问的:这些对象称为根。通常,这些对象包括从调用堆栈中的任何位置引用的所有对象(即当前正在调用的函数中的所有局部变量和参数(以及任何全局变量。
-
对象保存在内存中,同时可以通过引用或引用链从根访问它们。
-
浏览器中有一个垃圾收集器,可以清除无法访问的对象占用的内存
的情况下,如果您的对象实例将不再可访问,垃圾收集器将自动删除此对象,在大多数情况下,您无需自己删除它们或进行任何内存管理
相关文章:
- ES6构造函数返回基类的实例
- 我应该在原型上还是在新创建的实例上调用构造函数方法
- 为什么实例构造函数指向最上面的函数构造函数对象
- 主干和RequireJS冲突-实例或构造函数
- 在定义了构造函数之后,是否可以将实例属性添加到JavaScript原型中
- 销毁构造函数实例
- 在nodejs中,如何使模块的单个实例具有不同参数的构造函数
- 构造函数的“实例”是否有严格的定义
- 只为构造函数的所有实例触发一次事件侦听器
- 如何实例化其构造函数使用 yield 的对象
- 在实例化期间使用构造函数变量
- 为什么更改函数的 .prototype 会影响已使用该构造函数创建的对象的“实例”
- 如何在使用构造函数进行原型设计时访问实例
- 何时有时将对象类型定义为将实例绑定方法镜像为构造函数上的静态实用程序函数很有用
- 通过构造函数属性和运算符实例设置继承
- 如何在javascript中使用构造函数返回实例或sthelse
- 是否可以在没有构造函数参数的情况下实例化空对象/对象
- 函数是否无法返回构造函数并创建新实例
- 如何使用新构造函数为 json 中的每个节点创建实例
- 构造函数中的私有函数声明是否在每次创建实例时重新实例化