杂谈:什么是闭包?闭包会造成内存泄露?
2020-05-31 本文已影响0人
dear智子
为什么会流传闭包会导致内存泄露!因为IE浏览器早期的垃圾回收机制,有 bug。
IE浏览器中使用完闭包之后,依然回收不了闭包里面引用的变量。
在IE浏览器中,由于BOM和DOM中的对象是使用C++以COM对象的方式实现的,而COM对象的垃圾收集机制采用的是引用计数策略。在基于引用计数策略的垃圾回收机制中,如果两个对象之间形成了循环引用,那么这两个对象都无法被回收,但循环引用造成的内存泄露在本质上也不是闭包造成的。
如上可看出都是万恶 IE 的问题,不是闭包的问题,这也是流传闭包会导致内存泄露的主要原因。