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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.