Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Exercice de TD

Un code promotionnel limité

Portée, fermetures et this · niveau 2

Énoncé

Écrire creerCodePromo(taux, utilisationsMax), qui renvoie une fonction appliquant la remise à un prix, au plus utilisationsMax fois ; ensuite, elle renvoie le prix inchangé. Deux codes créés séparément doivent avoir chacun leur compte.

Corrigé


function creerCodePromo(taux, utilisationsMax) {
  let restantes = utilisationsMax;
  return (prix) => {
    if (restantes === 0) {
      return prix;
    }
    restantes--;
    return Math.round(prix * (1 - taux));
  };
}

const rentree = creerCodePromo(0.2, 2);
console.log(rentree(3000), rentree(3000), rentree(3000));
const autre = creerCodePromo(0.2, 2);
console.log(autre(3000));

2400 2400 3000
2400

Le nombre d'utilisations restantes est une variable de la fermeture, propre à chaque code : le troisième usage du code de rentrée n'a plus d'effet, et le second code a gardé ses deux utilisations.

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 →