js 中垃圾回收机制能将闭包不用的变量回收吗

JavaScript022

js 中垃圾回收机制能将闭包不用的变量回收吗,第1张

理论上不回收。因为闭包中的变量不会被回收这是闭包的特性之一。

但是实际上不同的浏览器实现的可能不一样。一些高端浏览器如果确认这个变量没有且不会再被使用的话,也可能将其回收。

找到stackoverflow上面的一个讲的相对详细的答案:

http://stackoverflow.com/questions/24468713/javascript-closures-concerning-unreferenced-variables

两者都是。

引用计数是被动清除,

标记是主动清除。

var a

a = null    //给了一个清除标记,浏览器马上就会回收这个变量的内存