1.闭包的三个条件
(1)函数内嵌套函数,外部函数直接或间接返回内部函数
(2)内部函数可以引用外部函数的参数或变量
(3)形成一个不会被销毁的函数空间,也就是说参数和变量不会垃圾回收机制回收
2.什么是闭包空间
满足了以上三个条件,我们就管外部函数的执行空间叫做闭包空间,把返回的内部函数叫做外部函数的闭包函数
3.闭包的特点
优点:
(1)延长了变量的生命周期
(2)可以访问函数内部的私有变量
(3)保护了私有变量
缺点:
因为闭包的执行空间不会被销毁,所以会一直占据内存,可能会造成内存溢出,因此不到万不得已不要使用闭包。
4.作用
当需要延长变量的生命周期的时候,或者需要访问函数的私有变量时使用
闭包代码:
//外部函数a
function a() {
var num = 100
//内部函数b
return function b() {
console.log(num)
}
}
var res=a();//接受到内部函数b
res();//执行函数b,输出num