Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Application directe du cours

Un compteur réglable

Portée, fermetures et this · niveau 2

Énoncé

Écrire creerCompteur(depart = 0, pas = 1), qui renvoie un objet de trois méthodes : suivant() ajoute le pas et renvoie la nouvelle valeur, reinitialiser() revient à la valeur de départ, valeur() renvoie la valeur courante. Créer un compteur de numéros de commande qui part de 1000 et avance de 10, et vérifier que deux compteurs sont indépendants.

Corrigé


function creerCompteur(depart = 0, pas = 1) {
  let valeur = depart;
  return {
    suivant() {
      valeur += pas;
      return valeur;
    },
    reinitialiser() {
      valeur = depart;
    },
    valeur() {
      return valeur;
    },
  };
}

const numeros = creerCompteur(1000, 10);
console.log(numeros.suivant(), numeros.suivant());
numeros.reinitialiser();
console.log(numeros.valeur(), numeros.suivant());
const simple = creerCompteur();
console.log(simple.suivant(), numeros.valeur());

1010 1020
1000 1010
1 1010

La variable valeur est partagée par les trois méthodes de l'objet renvoyé, et propre à chaque appel de creerCompteur : le compteur simple n'a pas touché à numeros. Les paramètres depart et pas sont eux aussi mémorisés par la fermeture.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →