1.什么是闭包?
函数A中,有一个函数B或有一个对象,函数B中或者对象中可以访问函数A中定义的变量或者是数据,此时形成了闭包。
2.闭包生成的三个重要条件
- 在函数 A 内部直接或者间接返回一个函数 B
- B 函数内部使用着 A 函数的私有变量(私有数据)
- A 函数外部有一个变量接受着函数 B
3.函数模式闭包:函数中有一个函数
4.对象模式闭包:函数中有一个对象
5.闭包的作用
当你需要延长变量的声明周期的时候或者你需要访问某一个函数内部的私有数据的时候,可以采用闭包。
6.闭包的特点(优点和缺点并存)
1.延长了变量的生命周期
+ 优点: 因为执行空间不销毁, 变量也没有销毁
+ 缺点: 因为执行空间不销毁, 会一直存在在内存中
2.可以访问函数内部的私有变量
+ 优点: 利用闭包函数可以访问函数内部的私有变量
+ 缺点: 执行空间不会销毁, 会一直存在在内存中
3.保护私有变量
+ 优点: 保护私有变量不被外界访问
+ 缺点: 如果向访问, 必须要利用闭包函数