Un mutateur et diminution pour counter
importance: 5
Modifiez le code de makeCounter()
afin que le compteur puisse également diminuer et définir le nombre:
counter()
devrait retourner le nombre suivant (comme avant).counter.set(value)
devrait définir le compteur àvalue
.counter.decrease()
devrait décrémenter le compteur de 1.
Voir le code sandbox pour un exemple d’utilisation complet.
P.S. Vous pouvez utiliser une fermeture ou la propriété de fonction pour maintenir le nombre actuel. Ou écrivez les deux variantes.
La solution utilise count
dans la variable locale, mais les méthodes d’addition sont écrites directement dans le compteur
. Ils partagent le même environnement lexical extérieur et peuvent également accéder au count
actuel.
function makeCounter() {
let count = 0;
function counter() {
return count++;
}
counter.set = value => count = value;
counter.decrease = () => count--;
return counter;
}