1 - 为什么当我运行以下代码时,我得到未定义而不是“a = 1”?
function f1(){a=1; f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
就像这个例子一样,结果是“a = 1”。
function f1(){a=1; f2();}
function f2(){alert(a);}
var a= 5;
f1();
答案 0 :(得分:6)
使用
a = f1();
您要将f1
的调用结果分配给a
。然而,f1
没有返回任何内容,它评估为undefined
。您需要使用return
语句:
function f1(){a=1; return f2(); }
顺便说一下,这不是范围问题。您没有任何函数本地变量,所有变量都访问相同的a
。
答案 1 :(得分:1)
你可能忘记了一个返回语句来获取你的值
function f1(){a=1; return f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
答案 2 :(得分:1)
f1
不会返回任何原因
试试下面的
function f1(){a=1; return f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
即使没有多大意义
答案 3 :(得分:0)
您需要从f1
明确返回。
答案 4 :(得分:0)
第一个例子中的函数f1没有返回任何值,所以这就是原因
答案 5 :(得分:0)
在行a = f1()期间; f1函数没有返回任何内容,所以a被设置为undefined。
我不肯定你要做什么;如果你添加更多我可以提出如何使它做你想做的建议。
答案 6 :(得分:0)
f1()
不会返回任何值。不返回任何内容与返回undefined相同。