闭包就是封闭的代码块
闭包的定义:
有权访问另一个函数作用域中变量的函数
闭包的特点:
- 函数嵌套函数
- 函数内部可以引用外部的参数和变量
- 参数和变量不会被垃圾回收机制回收(也是缺点,使用不当会造成内存泄漏)
闭包的优点:
- 希望一个变量长期驻扎在内存中
- 避免了全局变量的污染
- 私有成员的存在
其实说的更直白一点,闭包其实是结合了全局变量和局部变量的优点
全局变量的好处就在于什么地方都能用,但是这样就会有个问题,全部变量的污染问题,你不知道在哪不小心改了,其他的引用这个变量的点都会受到影响
局部变量就是定义在函数里的,他不能被倍的函数直接用,只能通过传参的一些方式
闭包就解决了这个问题,即时在局部被定义的,但是还能在别的函数里面直接调用