闭包

46 阅读1分钟

闭包是⼀种⽐较特殊和函数,使⽤闭包能够访问函数作⽤域中的变量。从代码形式上看闭包是⼀个做为返回值的函数

// 闭包的作用:延长作用域链
// 什么是闭包:一个函数(foo)中返回一个函数(bar),然后这个子函数(bar)会读取父函数(foo)的变量(i)
function foo() {
    let i = 0;

    // 函数内部分函数
    function bar() {
        i++
        console.log(i);
        return i
    }

    // 将函数做为返回值
    return bar;

}

// fn 即为闭包函数
let fn = foo();

fn(); // 1