Middle
Pourquoi ne peut-on pas utiliser le mot-clé 'this' en JavaScript?
sobes.tech IA
Réponse de l'IA
this ne peut pas être utilisé dans les fonctions fléchées pour lier le contexte propre. Les fonctions fléchées ne créent pas leur propre this, mais héritent sa valeur de la portée dans laquelle elles ont été définies.
De plus, this est peu fiable dans les rappels d'opérations asynchrones ou les gestionnaires d'événements sans liaison explicite du contexte (.bind(), .call(), .apply()), car sa valeur peut changer ou devenir l'objet global (en mode non strict) ou undefined (en mode strict).
Exemple:
function fonctionTraditionnelle() {
console.log(this); // this dépend de l'appel
}
const fonctionFlèche = () => {
console.log(this); // this hérite du contexte extérieur
};
const obj = {
methode: fonctionTraditionnelle
};
obj.methode(); // this - obj
fonctionTraditionnelle(); // this - objet global (window / global)
const obj2 = {
methode: fonctionFlèche
};
obj2.methode(); // this - hérité. Si défini dans le contexte global, alors global/window.