カウンターは独立していますか?
重要度: 5
同じmakeCounter
関数を使用して2つのカウンターcounter
およびcounter2
を作成します。
それらは独立していますか?2番目のカウンターは何を表示しますか?0、1
または2、3
またはその他ですか?
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter = makeCounter();
let counter2 = makeCounter();
alert( counter() ); // 0
alert( counter() ); // 1
alert( counter2() ); // ?
alert( counter2() ); // ?
答え: 0、1。
関数counter
とcounter2
は、makeCounter
の別々の呼び出しによって作成されます。
そのため、それらは独立した外部字句的環境を持ち、それぞれ独自のcount
を持ちます。