function funcA(){
var name = "jack";
console.log(name);
return function(){
name = name + " plus";
console.log(name);
};
}
var funB = funcA();
funB()
// expected result: "jack" and "jack plus"
私は混乱していますなぜrunnnig var funB = funcA();
は"jack"
だけを出力しますか?関数を返すJavaScriptクロージャー
なぜ2番目の文が出力されないのですか?意図したとおりに出力するのがなぜ2度目に実行されなければならないのですか?
「コンパイル」とはどういう意味ですか?あなたのコードは期待どおりに動作します。どの部分があなたを混乱させるのか、より具体的にできますか? –
funB()を無視して、funcA()だけを呼び出すと "jack"という結果になります。なぜ戻り文が機能しなかったのですか?私はそれが "ジャックプラス" – kennyname
を出力すると予測して、関数オブジェクトを返します。 – AirNoir