JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Application directe du cours
this perdu
Portée, fermetures et this · niveau 2
Énoncé
Expliquer la sortie de ce programme, puis corriger le dernier appel de deux façons.
const panier = {
articles: 3,
resume() {
return `${this.articles} article(s)`;
},
};
function afficherPlusTard(fournisseur) {
console.log(fournisseur());
}
console.log(panier.resume());
afficherPlusTard(panier.resume);Corrigé
3 article(s)
ex7-this.mjs:4
return `${this.articles} article(s)`;
^
TypeError: Cannot read properties of undefined (reading 'articles')
Le premier appel, panier.resume(), a l'objet à gauche du point. Dans afficherPlusTard, la méthode est appelée par fournisseur(), sans objet : this vaut undefined. Deux corrections :
const panier = {
articles: 3,
resume() {
return `${this.articles} article(s)`;
},
};
function afficherPlusTard(fournisseur) {
console.log(fournisseur());
}
afficherPlusTard(() => panier.resume());
afficherPlusTard(panier.resume.bind(panier));
3 article(s)
3 article(s)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.