レッスンに戻る

カウンタの設定と減少

重要性: 5

makeCounter のコードを、カウンタを減らしたり、数値を設定できるように修正してください:

  • counter() は次の数値を返します (前の通り)
  • counter.set(value)countvalue をセットします
  • counter.decrease()count を 1 減少させます

完全な使用例はサンドボックスのコードを見てください。

P.S. 現在のカウントを維持するために、クロージャまたは関数プロパティを使うことができます。もしくは両方のバリアントを書いてください。

テストと一緒にサンドボックスを開く

解法はローカル変数で count を使いますが、追加のメソッドは counter に書かれています。それらは同じ外部のレキシカル環境を共有し、また現在の count にアクセスすることができます。

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.set = value => count = value;

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

  return counter;
}

サンドボックスでテストと一緒に解答を開く