函数作为返回值
function create(){
const a=100
return function(){
console.log(a)
}
}
const fn=create()
const a=200
fn()//100
函数作为参数被传递
function print(fn){
const a=200
fn()
}
const a=100
function fn(){
console.log(a)
}
print(fn)//100
所有的自由变量的查找,是在函数定义的地方向上级作用域查找,不是在函数执行的地方。
补充:可跟this的指向问题做一下区分,this指向谁是在函数执行的时候确定的,不是在函数定义的时候确定的。