Sobes.tech
Junior

Que fait la fonction `Function.prototype.bind` et à quoi sert-elle?

sobes.tech IA

Réponse de l'IA

Function.prototype.bind crée une nouvelle fonction qui, lorsqu'elle est appelée, aura un contexte (this) fixé et, éventuellement, des arguments prédéfinis qui précèdent tous les arguments passés lors de l'appel.

Ceci est utile pour:

  • conserver le contexte lors du passage de méthodes en tant que callbacks ou gestionnaires d'événements.
  • appliquer partiellement (currying) des fonctions.
// Exemple de conservation du contexte

const user = {
  name: 'Alice',
  greet: function() {
    console.log(`Bonjour, ${this.name} !`);
  }
};

const greetUser = user.greet;
greetUser(); // Bonjour, undefined ! (contexte perdu)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Bonjour, Alice ! (contexte conservé)
// Exemple d'application partielle

function multiply(a, b) {
  return a * b;
}

const multiplyByTwo = multiply.bind(null, 2); // null comme contexte, car il n'est pas nécessaire

console.log(multiplyByTwo(5)); // 10