0

以下片段:

a = 0;

function f1() {
    a = 1;
    f2();
}

function f2() {
    return a;
}

f1();

返回未定义。

据我了解,函数在定义时可以访问变量,并在执行时访问这些变量的值。所以,在这种情况下,我猜 f2 可以访问全局变量“a”,并读取它的修改值 (1)。那么为什么它是未定义的呢?

4

2 回答 2

5

您没有在函数中返回调用的结果f2()或其他任何内容,因此正确返回.f1f1undefined

于 2013-05-26T21:24:09.240 回答
0

也许您所追求的是以下内容:

a = 0; // variable a defined in the global scope and set to 0

function f1() {
    a = 1; // since a is declared without var,
           // sets the value of global variable a to 1
    return f2();
}

function f2() {
    return a; // since a was not declared with var,
              // return a from the global scope
}

alert(f1()); // displays the computed value 1 of a

问候。

于 2014-10-27T14:43:26.983 回答