闭包问题
- 打印值多少?
function fun1 () {
const a = 100
return function () {
console.log(a)
}
}
// 函数作为参数
function fun2 (fn) {
const b = 100
fn(b)
}
const c = fun1()
const a = 200
c() // 100
- 打印值多少?
function fun2 (fn) {
const b = 100
fn()
}
const b = 200
function fun3 () {
console.log(b);
}
fun2(fun3) // 200
自由变量从函数定义地方向上级查找,不是调用的地方