关于闭包取值的问题

来源:16-9 作用域和闭包--闭包-代码演示

meimei1314

2019-10-25

var a = 100;
function F1() {
// var a = 200;
return function () {
console.log(a)
}
}
var f1 = F1();
function F2(fn) {
var a = 300;
fn();
}
F2(f1); // 100
老师,请问一下,闭包作为参数传递时,查询自由变量a的时候,
第一步,在其定义时父作用域F1中寻找,
第二部,若没有找到,不应该是其参数fn的父作用域F2中寻找么?
请问,为什么最后是在全局作用域中寻找呢?不应该是最后才是在全局作用域中寻找么?

写回答

1回答

双越

2019-10-25

你先参考 http://coding.imooc.com/learn/questiondetail/120005.html 问题,把代码格式化一下吧。

然后我明天给你回复。

0
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程