Junior
Co dělá funkce `Function.prototype.bind` a k čemu je potřeba?
sobes.tech AI
Odpověď od AI
Function.prototype.bind vytvoří novou funkci, která při volání bude mít pevně stanovený kontext (this) a volitelně předdefinované argumenty, které předcházejí jakýmkoli argumentům předaným nové funkci při volání.
To je užitečné pro:
- zachování kontextu při předávání metod jako callbacků nebo obslužníků událostí.
- částečné použití (currying) funkcí.
// Příklad zachování kontextu
const user = {
name: 'Alice',
greet: function() {
console.log(`Ahoj, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Ahoj, undefined! (kontext ztracen)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Ahoj, Alice! (kontext zachován)
// Příklad částečného použití
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null jako kontext, protože není potřeba
console.log(multiplyByTwo(5)); // 10