Sobes.tech
Junior

Mit csinál a `Function.prototype.bind` függvény és mire való?

sobes.tech MI

Válasz az MI-től

Function.prototype.bind létrehoz egy új függvényt, amely hívásakor rögzített kontextussal (this) és opcionálisan előre meghatározott argumentumokkal rendelkezik, amelyek megelőzik a híváskor átadott összes argumentumot.

Ez hasznos például:

  • a kontextus megőrzése callbackként vagy eseménykezelőként történő metódusok átadásakor.
  • részleges alkalmazás (currying) funkciók esetén.
// Kontextus megőrzésének példája

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

const greetUser = user.greet;
greetUser(); // Szia, undefined! (kontekstus elveszett)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Szia, Alice! (kontekstus megőrizve)
// Részleges alkalmazás példája

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

const multiplyByTwo = multiply.bind(null, 2); // null mint kontextus, mivel nincs rá szükség

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