一. 了解闭包 1.闭包的生成? 闭包的生成有三个必要条件 => 在函数 A 内部直接或者间接返回一个函数 B => B 函数内部使用着 A 函数的私有变量(私有数据) => A 函数外部有一个变量接受着函数 B => 这样就形成了一个不会销毁的函数空间(闭包空间) 2. 闭包空间? => 我们管这个不会销毁的 a 函数的执行空间叫做 闭包空间 => 把函数 a 里面返回的 函数 b, 叫做函数a 的 闭包函数 => 官方给的定义有一句话: 闭包 => 函数内部的函数 二. 闭包的特点 1. 延长了变量的生命周期 优点: 因为执行空间不销毁, 变量也没有销毁 缺点: 因为执行空间不销毁, 会一直存在在内存中 2. 可以访问函数内部的私有变量 优点: 利用闭包函数可以访问函数内部的私有变量 缺点: 执行空间不会销毁, 会一直存在在内存中 3. 保护私有变量(只要是函数, 就有这个特点) 优点: 保护私有变量不被外界访问 缺点: 如果向访问, 必须要利用闭包函数 三. 闭包的函数的问题 => 因为当一段内存空间中有一个不会被销毁的东西一直存在, => 那么就会出现内存占用, 如果过多, 就会导致内存溢出 => 那么结果就是 内存泄漏 (注意:因为闭包这个致命的缺点存在,所以闭包尽量少用,能用其他方法解决就用其他方法。) 四. 小结 1.闭包就是函数中嵌套一个函数。 2.闭包虽然能解决一些问题,但是它存在致命缺点,所以慎用