Junior
Ko dara funkcija `Function.prototype.bind` un kam tā ir nepieciešama?
sobes.tech AI
Atbilde no AI
Function.prototype.bind izveido jaunu funkciju, kas, izsaucot, būs ar fiksētu kontekstu (this) un, pēc vēlēšanās, iepriekš definētiem argumentiem, kas nāk pirms jebkuriem argumentiem, kas nodoti jaunajai funkcijai izsaukuma laikā.
Tas ir noderīgi:
- saglabājot kontekstu, pārsūtot metodes kā callback vai notikumu apstrādātājus.
- daļējas funkcijas (currying) piemērošanai.
// Konteksta saglabāšanas piemērs
const user = {
name: 'Alice',
greet: function() {
console.log(`Sveiki, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Sveiki, undefined! (konteksts zaudēts)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Sveiki, Alice! (konteksts saglabāts)
// Daļējas funkcijas piemērs
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null kā konteksts, jo tas nav nepieciešams
console.log(multiplyByTwo(5)); // 10