假设一开始我们将:
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 设置为 null
或 undefined
或其他任何值(假设这是最后一次引用对象) .
...否则,当 var 不再被任何东西需要时,GC 也会自己清理 var。 如果被删除的 var 是对某个值的最后引用,那么该值将被清除。
关于javascript - 在 Javascript 中重新分配对象变量时,原始对象会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231873/