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