1 - 爲什麼當我運行下面的代碼時,我得到了undefind而不是「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();
1 - 爲什麼當我運行下面的代碼時,我得到了undefind而不是「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我以前不返回任何值,所以這是原因
在線路= F1(); f1函數沒有返回任何東西,因此a被設置爲undefined。
我不是積極的,你正在嘗試做什麼;如果你添加更多,我可以提出一個建議,讓它做你想做的事。
f1()
不返回任何值。什麼都不返回,就像返回undefined一樣。
做得好謝謝 – yossi