Junior
Čo robí funkcia `Function.prototype.bind` a na čo je potrebná?
sobes.tech AI
Odpoveď od AI
Function.prototype.bind vytvára novú funkciu, ktorá pri volaní bude mať pevne stanovený kontext (this) a voliteľne preddefinované argumenty, ktoré predchádzajú akýmkoľvek argumentom odovzdaným novej funkcii pri volaní.
Toto je užitočné pre:
- zachovanie kontextu pri odovzdávaní metód ako callbackov alebo obsluhovačov udalostí.
- čiastočné použitie (currying) funkcií.
// Príklad zachovania kontextu
const user = {
name: 'Alice',
greet: function() {
console.log(`Ahoj, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Ahoj, undefined! (kontext stratený)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Ahoj, Alice! (kontext zachovaný)
// Príklad čiastočného použitia
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null ako kontext, pretože nie je potrebný
console.log(multiplyByTwo(5)); // 10