闭包的概念
一个函数访问了此函数的父级及父级以上的作用域中的变量,这个函数就是闭包。本质上,js中的每个函数都是个闭包,因为每个函数都可以访问全局变量。一般理解为函数嵌套函数
闭包的作用
访问函数内部的变量
让变量始终保持在内存中
闭包的优点
可以减少全局变量的定义,避免全局变量的污染
能够读取函数内部的变量
在内存中维护一个变量,可以用做缓存
闭包的缺点
造成内存泄露:变量驻留内存,会影响性能,在ie中,可能造成内存泄漏,解决办法︰使用完变量,在赋值给该变量null
造成性能损失∶闭包涉及跨作用域的访问,所以会导致性能损失.
解决办法:涉及到跨作用域的变量,定义为局部变量,减轻对性能的影响