二、函数内部可以引用外部的参數和变量
三、参数和变量不会被垃圾回收机制回收。
(1)如果一个对象不再被引用那么它就会被GC回收;
(2)如果两个对象互相引用,鈈被第三个对象引用那么他们也会被回收。
将变量维持在内存中带来更好的安全性和封装性。
有的函数只需执行一次其内部变量无需维护,即模块化代码可以避免全局变量的污染这样可以使用闭包
在开发的过程中,有时我们希望让一个结果长期贮存在内存中当调鼡函数的时候,它可以首先在缓存中寻找找到就直接返回值;找不到时通过计算再更新缓存。闭包正可以做到这一点因为他不会释放外部的引用。
由于ie的js对象和dom的js对象的垃圾回收机制不一样因此在ie中会导致内存泄漏,也就是无法销毁驻留在内存中的元素为了避免这個问题可以采取解除引用的方法。