闭包

67 阅读1分钟

闭包

什么是闭包?

闭包就是 函数嵌套函数,内部函数就是闭包

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);