Sobes.tech
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('!')); // Здравствуй, Иван!