在垃圾回收期间,在Node.js中清除变量的属性。但是,我不希望这种情况发生。我已找到它的解决方案,例如将变量保存到数据库或文件。但是,我不喜欢这种方法。我只需要一个保护垃圾收集的关键部分或关键变量。
例如,使用以下代码:
function a() {
var b;
}
c = new a();
如何保护变量c
免受垃圾回收?
经过一段时间后,c.b
或c
将被删除......就我而言,c.b
已被删除......
请帮帮我...我知道我的英语很差,但我非常需要你的帮助。
答案 0 :(得分:1)
有一点需要注意,在你的代码中,b和d不是a上的属性。它们是函数a内部的局部变量,它们没有被使用,因此被清理干净。
如果您将其更改为:
function a() {
this.b = 1;
this.d = 2;
}
var c = new a();
console.log(c.b) //1
console.log(c.d) //2
然后你可以引用c.b和c.d,只要你有c的引用,就不应该收集它。如果你把它作为var b,d;你不能从函数之外引用它们。
比较:
function a() {
var b = 1;
var d = 2;
}
var c = new a();
console.log(c.b) //undefined
console.log(c.d) //undefined
答案 1 :(得分:0)
我不确定但是。你没有为c指定范围,所以它进入最高范围,因此它被垃圾收集。在当前范围内定义c:
let c;
function doSomething() {
c = {b: 1, d: 2};
}
doSomething();
希望它有所帮助。