闭包是⼀种⽐较特殊和函数,使⽤闭包能够访问函数作⽤域中的变量。从代码形式上看闭包是⼀个做为返回值的函数
// 闭包的作用:延长作用域链
// 什么是闭包:一个函数(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