Sobes.tech
Junior

Wat doet de functie `Function.prototype.bind` en waar is het voor nodig?

sobes.tech AI

Antwoord van AI

Function.prototype.bind creëert een nieuwe functie die, wanneer deze wordt aangeroepen, een vastgestelde context (this) heeft en optioneel vooraf gedefinieerde argumenten die vóór alle argumenten worden geplaatst die aan de nieuwe functie worden doorgegeven bij het aanroepen.

Dit is handig voor:

  • het behouden van de context bij het doorgeven van methoden als callbacks of eventhandlers.
  • het gedeeltelijk toepassen (currying) van functies.
// Voorbeeld van contextbehoud

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

const greetUser = user.greet;
greetUser(); // Hallo, undefined! (context verloren)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Hallo, Alice! (context behouden)
// Voorbeeld van gedeeltelijke toepassing

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

const multiplyByTwo = multiply.bind(null, 2); // null als context, niet nodig

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