このコードで混乱少しだけ内部関数と外部関数は同じ変数の独自のコピーを取得しますか?
var counter = function() {
//...
var count = 0;
return function() {
return count = count + 1;
}
}
var nextValue = counter();
console.log(nextValue());
nextValue.count = 7;
console.log(nextValue());
console.log(nextValue.count);
console.log(nextValue());
出力は、それはカウンター直感的だ
1
2
7
3
です。カウントには2つの表現があります。 1つは外部関数nextValueにあり、もう1つは内部無名関数だけが見ることができるものです。
正解、または私の何かが欠けていますか?