Sobes.tech
Middle

Codage en direct : déterminer la sortie dans la console pour le code avec des fonctions, des fonctions fléchées, des objets et le contexte (this), call/bind

sobes.tech IA

Réponse de l'IA

En JavaScript, le contexte d'exécution (this) dépend de la façon dont la fonction est appelée. Les fonctions fléchées n'ont pas leur propre this — elles héritent du this de leur environnement lexical externe.

Exemple :

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value);
  },
  arrowFunc: () => {
    console.log(this.value);
  }
};

obj.regularFunc(); // 42 — this fait référence à obj
obj.arrowFunc();   // undefined ou la valeur du contexte externe (par exemple, window.value)

// Utilisation de call/bind :
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

Ainsi, call et bind permettent de définir explicitement this lors de l'appel de la fonction, mais ne fonctionnent pas avec les fonctions fléchées, car leur this est fixé lexicalement.