删除javascript中的动态变量

问题描述

我想知道如何释放动态变量使用的内存。 例如,

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 只对对象的属性有效,对变量无效)