レッスンに戻る

カウンターに対する設定とデクリメント

重要度: 5

makeCounter()のコードを変更して、カウンターで減算と数値の設定も行えるようにします

  • counter()は、(これまでどおり)次の数値を返す必要があります。
  • counter.set(value)は、カウンターをvalueに設定する必要があります。
  • counter.decrease()は、カウンターを 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;
}

サンドボックスでテスト付きの解決策を開く。