いつもお世話になっております。
function parentFunction(){ var foo = "foo"; return function(a){ //無名関数を返す foo = foo + a console.log(foo) } } var nestedFunction = parentFunction(); nestedFunction("1") //foo1 var nestedFunction2 = parentFunction(); nestedFunction2("2") //foo2
上記のコードの挙動についての質問です。
nestedFunction2("2") //foo12
となると予想したのですが、なぜそのような挙動にならないのでしょうか?
スコープチェーンは関数定義時に作られる、ということならばnestedFunctionもnestedFunction2も「同じ」変数fooを参照するのでは、と考えた次第です。
分かりにくい質問でしたら申し訳ありません。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/09 13:40