问题描述
我想知道如何释放动态变量使用的内存。 例如,
function func1(name){
this.name = name;
}
func1.prototype.method1 = function(){
console.log(this.name);
}
// initializing dynamic variable dyVar
let dyVar = new func1("Variable1");
dyVar.method1();
// Now change dyVar,here I want to free up the memory
//so that I won't have any trace of "Variable1" and re-initialize dyVar
dyVar = new func1("Var2");
为此,我需要在重新初始化之前使用 delete 吗?
//something like this
delete dyVar
dyVar = new func1("Var2");
解决方法
为此,我需要在重新初始化之前使用 delete 吗?
没有
当没有对对象的引用时,对象会被标记为垃圾回收。
dyVar = new func1("Var2");
会覆盖您对前一个对象的唯一引用,因此只需这样做即可将其标记为垃圾回收。
(而且 delete
只对对象的属性有效,对变量无效)