Junior
Quelle est la différence entre deux façons de définir une fonction?
sobes.tech IA
Réponse de l'IA
La principale différence réside dans le contexte de this.
| Méthode de définition d'une fonction | Différence |
|---|---|
déclaration de fonction |
Le contexte this est déterminé par la façon dont la fonction est appelée. Elle est levée avant l'exécution du code (hoisting). |
fonction fléchée |
Le contexte this hérite du contexte environnant (lexical). Elle n'est pas levée (pas de hoisting). |
// déclaration de fonction
function fonctionOrdinaire() {
console.log(this); // `this` dépend de l'appel
}
// fonction fléchée
const fonctionFlechee = () => {
console.log(this); // `this` hérite du contexte où la fonction est définie
};
Les fonctions fléchées n'ont pas non plus leur propre objet arguments (il est pris du contexte externe) et ne peuvent pas être utilisées comme constructeurs avec l'opérateur new.