闭包问题

  1. 打印值多少?
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
  1. 打印值多少?
function fun2 (fn) {
  const b = 100
  fn()
}
const b = 200
function fun3 () {
  console.log(b);
}
fun2(fun3) // 200

自由变量从函数定义地方向上级查找,不是调用的地方

results matching ""

    No results matching ""