闭包
1.什么是闭包?
我的理解闭包就是一个函数,这个函数(外部函数)内部嵌套了另一个函数(内部函数),嵌套的函数可以访问这个函数的参数和内部变量,并且嵌套的函数是这个函数私有的,外部访问不到。闭包本质上就是在一个函数内部创建另一个函数,是为了解决’在函数内部有权限访问另一函数内部变量“这一需求的。
2.闭包的特点
1.函数嵌套函数。
2.内部函数可以访问外部函数的变量和参数。
3.参数和变量不会随着外部函数的结束而被回收,因为内部函数还在引用。
3.闭包的有点和缺点
好处:
1.变量可以长期驻扎在内存之中,可以做缓存(但使用多了同时也是一项缺点,消耗内存)
2.保护函数内的变量安全 ,实现封装,防止变量流入其他环境发生命名冲突。
3.匿名自执行函数可以减少内存消耗
坏处:
1.被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null;
2.其次由于闭包涉及跨域访问,所以会导致性能损失,我们可以通过把跨作用域变量存储在局部变量中,然后直接访问局部变量,来减轻对执行速度的影响。
4.闭包的用途
1.模块化代码
5.闭包需要注意的地方
由于闭包会使函数内部变量长驻内存,需要注意内存泄漏。