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

JavaScript030

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

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

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

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

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

可以不用考虑清除内存的事情,因为javascript自带垃圾回收机制。

JavaScript语言是一门优秀的脚本语言。其中包含脚本语言的灵活性外还拥有许多高级语言的特性。例如充许构建和实例化一个对象,垃圾回收机制(GC:Garbage Collecation)。通常我们使用new创建对象,GC负责回收对象占用内存区域。因此了解GC,可以加深对javascript垃圾回收机制的理解。

GC在回收内存时,首先会判断该对象是否被其它对象引用。在确定没有其它对象引用便释放该对象内存区域。因此如何确定对象不再被引用是GC的关键所在。