Adloun

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

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 →