カウンターは独立していますか?
重要度: 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を持ちます。