js 求解一个闭包内存泄露问题

function test() {

var a = [];

return function (){

a.push(1)

return a

}

}

var t = test();

t();

t();

t = null;

这样的话 a 会被释放吗? 如何不会应该怎么释放?

回答

这是写 t=null时的图

js 求解一个闭包内存泄露问题

这是不写 t = null时的图

js 求解一个闭包内存泄露问题
以上都是在无痕模式下6秒的结果
可以发现无论是否写t = null, 都是没发生内存泄漏的。

多次测试, 偶尔有以下结果
js 求解一个闭包内存泄露问题

可以发现,有创建堆栈,但是是趋于稳定的,是绝对没发生内存泄漏" title="内存泄漏">内存泄漏的。
也许这就是v8的威力吧

以上是 js 求解一个闭包内存泄露问题 的全部内容, 来源链接: utcz.com/a/64493.html

回到顶部