闭包
什么是闭包?
闭包就是 函数嵌套函数,内部函数就是闭包
function outerFun() {
let a = 10;
function innerFun() {
console.log(a);
}
return innerFun;
}
let fun = outerFun(); // 其实是将 innerFun 赋值给 fun
fun(); // fun加上括号即可执行
// innerFun 就是闭包
正常情况下,函数执行完成后,内部变量会销毁(销毁:释放内存空间)。
闭包内部函数没有执行完成,外部函数变量不会被销毁。
闭包的应用
闭包可以封装一段代码。
// 利用闭包实现了代码模块化的功能
let xd = (function() {
let a = 10;
let b = 20;
function add() {
return a + b;
}
function sub() {
return a - b;
}
return {
add,
sub
}
})()
let result1 = xd.add();
let result2 = xd.sub();
console.log(result1);
console.log(result2);