JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Exercice de TD
Une méthode fléchée
Portée, fermetures et this · niveau 2
Énoncé
Pourquoi ce compteur échoue-t-il ? Le corriger sans changer le nom de la méthode.
const compteur = {
valeur: 0,
incrementer: () => {
this.valeur++;
return this.valeur;
},
};
console.log(compteur.incrementer());Corrigé
ex8-fleche.mjs:4
this.valeur++;
^
TypeError: Cannot read properties of undefined (reading 'valeur')
Une fonction fléchée n'a pas de this propre : elle prend celui de la portée où l'objet est écrit, le module, où this vaut undefined. On écrit la méthode avec la notation de méthode :
const compteur = {
valeur: 0,
incrementer() {
this.valeur++;
return this.valeur;
},
};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.