JS闭包理解
一 闭包:https://blog.csdn.net/qq_39903567/article/details/115010640
是指有权访问另外一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部创建另外一个函数。
1 使用闭包主要为了设计私有的方法和变量,闭包优缺点:
- 优点是可以避免变量的污染
- 缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
2 闭包用途:
- 读取函数内部的变量
- 让这些变量的值始终保持在内存中。
- 方便调用上下文的局部变量。利于代码封装。
3 闭包产生的背景:
变量作用域:变量作用域两种:全局变量、局部变量。js中函数内部可以读取全局变量,函数外部不能读取函数内部的局部变量。通过闭包可以从外部读取函数内部的变量。
JS垃圾回收:闭包会产生内存泄漏的原因,是因为变量无法得到释放,