計數器是否獨立?
重要性:5
在此,我們使用相同的 makeCounter
函式建立兩個計數器:counter
和 counter2
。
它們是獨立的嗎?第二個計數器會顯示什麼?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
。