微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除javascript中的动态变量

如何解决删除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 只对对象的属性有效,对变量无效)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。