Middle
Jaký je rozdíl mezi metodami bind a call v JavaScriptu?
sobes.tech AI
Odpověď od AI
bind vytvoří novou funkci, ve které je kontext this pevně stanoven. Nevolá původní funkci ihned.
call volá původní funkci ihned, nastavuje kontext this a předává argumenty jednotlivě.
Příklad:
const person = { name: 'Иван' };
function greet(greeting, punctuation) {
return `${greeting}, ${this.name}${punctuation}`;
}
// Použití call - volá funkci okamžitě
console.log(greet.call(person, 'Привет', '!')); // Привет, Иван!
// Použití bind - vytváří novou funkci
const boundGreet = greet.bind(person, 'Здравствуй');
console.log(boundGreet('?')); // Здравствуй, Иван?
console.log(boundGreet('!')); // Здравствуй, Иван!