返回課程

設定和減少計數器

重要性:5

修改 makeCounter() 的程式碼,讓計數器也可以減少和設定數字

  • counter() 應傳回下一個數字(與之前相同)。
  • counter.set(value) 應將計數器設定為 value
  • counter.decrease() 應將計數器減少 1。

請參閱沙盒程式碼,了解完整的用法範例。

附註:您可以使用封閉或函數屬性來保持目前的計數。或者寫入兩個變體。

開啟一個有測試的沙盒。

解決方案在區域變數中使用 count,但加法方法直接寫入 counter。它們共用相同的外部詞彙環境,也可以存取目前的 count

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.set = value => count = value;

  counter.decrease = () => count--;

  return counter;
}

在沙盒中開啟有測試的解決方案。