Junior
Mida teeb funktsioon `Function.prototype.bind` ja milleks see vajalik on?
sobes.tech AI
Vastus AI-lt
Function.prototype.bind loob uue funktsiooni, millel on fikseeritud kontekst (this) ja valikulised eelmääratud argumendid, mis tulevad enne kõiki argumente, mida uuele funktsioonile kutsumisel edastatakse.
See on kasulik:
- konteksti säilitamiseks, kui meetodeid edastatakse callback'idena või sündmuse töötlejatena.
- funktsioonide osalise rakendamise (currying) jaoks.
// Konteksti säilitamise näide
const user = {
name: 'Alice',
greet: function() {
console.log(`Tere, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Tere, undefined! (kontekst kadunud)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Tere, Alice! (kontekst säilitatud)
// Osalise rakendamise näide
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null kontekstina, kuna see ei ole vajalik
console.log(multiplyByTwo(5)); // 10