Sobes.tech
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.