【发布时间】:2013-05-26 21:22:43
【问题描述】:
下面的sn-p:
a = 0;
function f1() {
a = 1;
f2();
}
function f2() {
return a;
}
f1();
返回未定义。
据我了解,函数在定义时可以访问变量,并在执行时访问这些变量的值。所以,在这种情况下,我猜 f2 可以访问全局变量“a”,并读取它的修改值 (1)。那么为什么它是未定义的呢?
【问题讨论】:
-
f2中的return不会从f1返回...但是是的,所有三个as 都引用同一个全局变量。
标签: javascript scope closures lexical-scope