在Javascript中重新分配对象变量时,原始对象会发生什么
When object variable is reassigned in Javascript, what happens to the original object?
让我们在一开始就说:
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是对某个值的最后一次引用,那么该值将被清除。
相关文章:
- 如何在HTML中显示服务器对象变量
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- Javascript 方法看不到对象变量
- JavaScript对象范围-在对象方法中使用对象变量
- 将对象(变量)传递给angularjs指令
- 对象变量在 JavaScript 中是不可访问的
- 无法访问公共JavaScript对象变量
- 可以't获取具有“t”的对象变量;这个“;由setTimeout()函数调用的对象函数中的属性
- Javascript:如何在回调中设置父对象变量
- 从方法内部设置对象变量
- 访问对象中的对象变量
- JavaScript 中的对象变量
- 从 json 代码中删除 javascript 对象变量名称文本
- 将变量传递到对象变量中
- JavaScript 如何重新识别事件对象变量
- 从对象变量中获取子节点
- 使对象变量在所有“更深”的范围内都是可访问的
- 从方法 JavaScript 访问对象变量
- 如何在 javascript 中保存对象变量的状态
- 无法访问IE和Mozilla中javascript的类对象变量