返回課程

計數器是否獨立?

重要性:5

在此,我們使用相同的 makeCounter 函式建立兩個計數器:countercounter2

它們是獨立的嗎?第二個計數器會顯示什麼?0,12,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。

函式 countercounter2 是透過 makeCounter 的不同呼叫所建立的。

因此,它們有獨立的外在詞彙環境,每個環境都有自己的 count