トピックタイトルには、その動作が分かりません。だからここに私の簡単な例です:JavaScript関数の戻り値にローカルスコープ変数がどのように格納されているのですか?
function bar() {
var a = 0;
return {
baz: function() {
console.log(a++);
}
}
}
var foo = bar();
foo.baz() // 0
foo.baz() // 1
foo.baz() // 2
私は「バー」機能を使用する場合、それはそれで置き換え変数とすべてのローカル変数で、このオブジェクト
{
baz: function() {
console.log(0++);
}
}
私を返すために必要があることを考えなければなりません実行後に削除されましたが、それはありません!変数 "a"は保存され、使用できるので、私はそれを取得しません。誰かが私にこれを説明することができ、
変数は、関数を含む関数が返されても、どこかから参照されている限り、離れません。 – melpomene