Middle
Peut-on appliquer la méthode bind à une fonction fléchée?
sobes.tech IA
Réponse de l'IA
Non, ce n'est pas possible.
Les fonctions fléchées n'ont pas leur propre contexte this. La valeur de this à l'intérieur d'une fonction fléchée est déterminée lexicalement, c'est-à-dire héritée de la portée extérieure. La méthode bind modifie le contexte this pour une fonction normale, mais comme une fonction fléchée n'a pas son propre this, bind ne peut pas le changer. Tenter d'appliquer bind à une fonction fléchée renverra la même fonction, mais son contexte this restera inchangé.
// Exemple de fonction normale
function traditionalFunction() {
console.log(this);
}
// Exemple de fonction fléchée
const arrowFunction = () => {
console.log(this);
};
const obj = { name: 'test' };
// Appliquer bind à une fonction normale - change `this`
const boundTraditional = traditionalFunction.bind(obj);
boundTraditional(); // Affichera { name: 'test' }
// Appliquer bind à une fonction fléchée - ne change pas `this`
// `this` dans la fonction fléchée sera le même que dans son contexte de déclaration
const boundArrow = arrowFunction.bind(obj);
boundArrow(); // Affichera `this` du contexte global ou de la fonction extérieure