[英]I don't understand the Scope
1 - 为什么当我运行下面的代码时,我得到了unfind而不是“a = 1” ?
function f1(){a=1; f2();}
function f2(){return a;}
var a= 5;
a = f1();
alert(a);
像这个例子,resualt是“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
。
你可能忘记了一个return语句来获取你的值
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被设置为undefined。
我不是肯定你想做什么; 如果你添加更多我可以提出如何使它做你想要的建议。
f1()
不返回任何值。 返回任何内容与返回undefined相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.