js 求解一个闭包内存泄露问题
function test() {var a = [];
return function (){
a.push(1)
return a
}
}
var t = test();
t();
t();
t = null;
这样的话 a 会被释放吗? 如何不会应该怎么释放?
回答
这是写 t=null时的图
这是不写 t = null时的图
以上都是在无痕模式下6秒的结果
可以发现无论是否写t = null, 都是没发生内存泄漏的。
多次测试, 偶尔有以下结果
可以发现,有创建堆栈,但是是趋于稳定的,是绝对没发生内存泄漏" title="内存泄漏">内存泄漏的。
也许这就是v8的威力吧
以上是 js 求解一个闭包内存泄露问题 的全部内容, 来源链接: utcz.com/a/64493.html