我们首先要说:
class AI {
// class properties/methods here
}
var chappie = new AI;
然后在使用变量后,如果我想通过调用:
重置它chappie = new AI;
原始对象会发生什么?是垃圾收集了吗?这是允许的,还是有更好的方法来“重置”变量?
答案 0 :(得分:1)
如果没有对象的更多引用,那么该对象最终将被垃圾收集。
如果你最初有1个引用,现在你没有引用,最终会释放内存。
var obj = { };
var a = obj;
var b = obj;
a = null;
还有一个参考,所以没有任何改变。
关于另一个问题:“我还能如何重置变量?” 我的后续问题是“为什么?”
如果您希望GC启动,那么您可以将var设置为null
或undefined
或其他(假设它是最后一次引用对象)。
...否则,当任何事物不再需要var时,GC也会清理var本身。 如果已删除的var是对值的最后一个引用,则该值将被清除。