retour au cours

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.

Open a sandbox with tests.

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;
}

Ouvrez la solution avec des tests dans une sandbox.