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();
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();
と
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を返すことと同じです。