javascript - 在 Javascript 中重新分配对象变量时,原始对象会发生什么变化?

标签 javascript class variables object declaration

假设一开始我们将:

class AI {
// class properties/methods here
}
var chappie = new AI;

然后在使用变量后,如果我想通过调用重置它:

chappie = new AI;

原始对象发生了什么?它会收集垃圾吗?这是允许的,还是有更好的方法来“重置”变量?

最佳答案

如果不再有对某个对象的引用,那么该对象最终将被垃圾回收。

如果您最初有 1 个引用,现在没有,最终内存将被释放。

var obj = { };
var a = obj;
var b = obj;
a = null;

仍然有引用,所以没有任何变化。

关于另一个问题:“我还能如何重置变量?” 我的后续问题是“为什么?”

如果您希望 GC 启动,那么您可以将 var 设置为 nullundefined 或其他任何值(假设这是最后一次引用对象) .

...否则,当 var 不再被任何东西需要时,GC 也会自己清理 var。 如果被删除的 var 是对某个值的最后引用,那么该值将被清除。

关于javascript - 在 Javascript 中重新分配对象变量时,原始对象会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231873/

相关文章:

oop - Matlab相当于调用内部静态类

variables - 如何在命令行中传递变量时修复 DTSX 优先约束评估错误?

javascript - AngularJS - ngModel 与自定义指令冲突

javascript - jQuery:处理多个按键监听器?

javascript - 动态添加/删除类

python - 获取其他模块中 tkinter 实例的参数

c# - 奇怪的 C# 变量声明

c++ how-to : import numeric variables from . txt 或 .csv 文件

javascript - 将唯一元素附加到具有相同类名的元素

javascript - 使用 Passport 的 Express NodeJS 服务器中的 EnsureAdmin 问题