闭包: 函数嵌套函数,内部函数就是闭包
正常情况下,函数执行完成,内部变量会销毁(销毁:释放内存空间)
闭包: 内部函数没有执行完成,外部函数变量不会销毁
<script>
function outerFun(){
let a = 10;
function innerFun(){
console.log(a);
}
return innerFun;
}
let fun = outerFun();
fun();
</script>
闭包的应用:封装函数
// 立即执行函数
let lx = (function(){
let a = 10;
let b = 20;
fuction add(){
return a +b;
}
function sub(){
return a - b;
}
return {
add,
sub
}
})()
let result1 = lx.add();
let result2 = lx.sub();
console.log(result1);
console.log(result2);