Junior
Co robi funkcja `Function.prototype.bind` i do czego jest potrzebna?
sobes.tech AI
Odpowiedź od AI
Function.prototype.bind tworzy nową funkcję, która podczas wywołania będzie miała ustawiony stały kontekst (this) oraz opcjonalnie zdefiniowane argumenty, które będą poprzedzały wszelkie argumenty przekazane do nowej funkcji podczas wywołania.
Jest to przydatne do:
- zachowania kontekstu podczas przekazywania metod jako callbacków lub obsługi zdarzeń.
- częściowego zastosowania (currying) funkcji.
// Przykład zachowania kontekstu
const user = {
name: 'Alice',
greet: function() {
console.log(`Cześć, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Cześć, undefined! (utracony kontekst)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Cześć, Alice! (kontekst zachowany)
// Przykład częściowego zastosowania
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null jako kontekst, bo nie jest potrzebny
console.log(multiplyByTwo(5)); // 10