什么是闭包
闭包:
函数嵌套函数。内部函数就是闭包
正常情况下,函数执行完成后内部变量会销毁
(销毁,释放内存空间)
闭包,内部函数没有执行完成,外部函数 变量不会被销毁
//fn1是外部函数
function fn1(){
let a = 10;
//fn2是内部函数
function fn2(){
console.log(a);
}
return fn2;
}
let fn3 = fn1;
fn3()
闭包的应用(封装)
//立即执行函数
let module = (function(){
let a = 1;
let b = 2;
function add(){
return a + b;
}
function sub(){
return a - b;
}
return{
add,
sub
}
})()
let res1 = add();
let res2 = sub();
console.log(res1);
console.log(res2)