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