JavaScript 闭包
-
函数作为返回值, 结果 = ?
function create(){ const a = 100; return function () { console.log(a) } } const fn = create() const a = 200 fn()
函数作为参数被传递, 结果 = ?
function print(fn){ const a = 200 fn() } const a = 100 function fn(){ console.log(a) } print(fn)
-
100
100所有自由变量的查找, 是在函数定义的地方, 向上级作用域查找, 不是在执行的地方!