1 - 为什么当我运行下面的代码时,我得到了undefind而不是"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();
1 - 为什么当我运行下面的代码时,我得到了undefind而不是"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();
和
a = f1();
您正在分配调用f1
到的结果a
。然而,f1
不返回任何东西,它评估为undefined
. 你需要使用一个return
语句:
function f1(){a=1; return f2(); }
顺便说一句,这不是范围问题。您的函数没有任何本地变量,所有内容都访问相同的a
.
您可能忘记了返回语句来获取您的值
function f1(){a=1; return f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
f1
不返回任何东西,这就是为什么尝试以下
function f1(){a=1; return f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
即使没有多大意义
您需要显式地从f1
.
第一个示例中的函数 f1 没有返回任何值,这就是原因
在行期间 a = f1(); f1 函数没有返回任何内容,因此 a 被设置为未定义。
我不肯定您要做什么;如果你添加更多,我可以就如何让它做你想做的事情提出建议。
f1()
不返回任何值。不返回任何内容与返回 undefined 相同。