Quelle est la différence entre l'utilisation des fonctions fléchées et des fonctions standard en JavaScript?
sobes.tech IA
Réponse de l'IA
Les fonctions fléchées en JavaScript diffèrent des fonctions standard à plusieurs égards clés:
-
Contexte
this: Dans les fonctions fléchées,thisest hérité lexicalement du contexte environnant, c’est-à-dire qu’il ne crée pas son propre contextethis. Dans les fonctions normales,thisdépend de la façon dont la fonction est appelée. -
Absence de
arguments: Les fonctions fléchées n’ont pas leur propre objetarguments. Pour accéder aux arguments, il faut utiliser des paramètres ou des variables externes. -
Ne peut pas être utilisé comme constructeur : Les fonctions fléchées ne peuvent pas être appelées avec
new, elles n’ont pas la méthode interne [[Construct]]. -
Syntaxe plus courte : Les fonctions fléchées sont généralement plus courtes et plus pratiques pour écrire de petites fonctions.
Exemple:
const obj = {
value: 10,
regularFunc: function() {
console.log(this.value); // 10
},
arrowFunc: () => {
console.log(this.value); // indéfini ou valeur du contexte externe
}
};
obj.regularFunc(); // affichera 10
obj.arrowFunc(); // affichera undefined
Ainsi, le choix entre une fonction fléchée et une fonction normale dépend de la nécessité de gérer le contexte et des particularités de l’utilisation.