設定和減少計數器
重要性: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;
}