カウンターに対する設定とデクリメント
重要度: 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;
}