闭包
1、闭包
就是打通了⼀条在函数外部访问函数内部作⽤域的通道。正常情况下函数外部是
访问不到函数内部作⽤域变量的
闭包产生有两种表现:
1、函数作为参数被传递
2、函数作为返回值被返回
函数中的自由变量,取决于函数定义的地方,跟执行的地方没关系
// 函数作为参数被传递
function fn() {
let a = 10
return function() {
console.log(a); // 10
}
}
let an = fn()
let a = 20
an()
// 函数作为参数被传递
function fn() {
const a = 20
f()
}
const a = 10
function f(