繁体   English   中英

我不明白范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM