Impostare e decrementare il contatore
importanza: 5
Modificate il codice di makeCounter()
in modo tale che il counter possa essere anche decrementato e reimpostato:
counter()
dovrebbe ritornare il prossimo numero (come già fa).counter.set(value)
dovrebbe impostare il contatore avalue
.counter.decrease()
dovrebbe decremetare il contatore di 1.
Vedi il codice in sandbox per un esempio completo.
P.S. Potete usare sia una closure che una proprietà di funzione. O scrivere entrambe le varianti.
La soluzione utilizza count
come variabile locale, ma i metodi aggiuntivi sono scritti dentro counter
. Condividono lo stesso lexical environment esterno e possono accedere al valore di count
.
function makeCounter() {
let count = 0;
function counter() {
return count++;
}
counter.set = value => count = value;
counter.decrease = () => count--;
return counter;
}