正常函数执行结束,局部活动对象会被销毁,内存中就只剩下全局作用域。不过闭包就不一样了,外部函数的活动对象存在内部函数,内部函数的作用域链包含外部函数,其活动对象并不能在它执行完毕后销毁,因为匿名函数的作用域链中仍然有对外部函数活动对象的引用,直到内部函数的被销毁,才会触发垃圾回收机制。

优点:

   闭包可以实现对象的私有属性和私有方法。

   闭包可以封装变量,从简减少对全局作用域的污染。

缺点:

         闭包会过度占用内存

 

js高级程序设计第四版中是这样总结的:闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的

posted on 2022-03-17 17:00  苏凯play  阅读(244)  评论(0)    收藏  举报