Junior
Ką daro funkcija `Function.prototype.bind` ir kam ji reikia?
sobes.tech AI
Atsakymas iš AI
Function.prototype.bind sukuria naują funkciją, kuri, iškvietus, turės fiksuotą kontekstą (this) ir, pageidaujant, iš anksto apibrėžtus argumentus, kurie eina prieš bet kokius argumentus, perduodamus naujai funkcijai iškvietimo metu.
Tai naudinga:
- išlaikyti kontekstą perduodant metodus kaip callback'us arba įvykio tvarkytojus.
- dalinės funkcijos taikymas (currying).
// Konteksto išsaugojimo pavyzdys
const user = {
name: 'Alice',
greet: function() {
console.log(`Sveiki, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Sveiki, undefined! (kontekstas prarastas)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Sveiki, Alice! (kontekstas išsaugotas)
// Dalinės taikymo pavyzdys
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null kaip kontekstas, nes nereikia
console.log(multiplyByTwo(5)); // 10