Sobes.tech
Back to questions
Junior
88
questionbank

Что передается вторым аргументом в методах call, apply и bind?

Sobes Copilot

Get answers in real time

Answer from AI

sobes.tech AI

Вторым аргументом в методах call и apply, а также первым дополнительным аргументом (после контекста) в методе bind передаются аргументы, которые будут переданы в вызываемую функцию.

Разница в том, как эти аргументы передаются:

  • call: Принимает аргументы списком, через запятую.
  • apply: Принимает аргументы массивом.
  • bind: Возвращает новую функцию. Аргументы, переданные при вызове bind после контекста, становятся начальными аргументами новой функции (их называют "частично примененные" аргументы). При вызове новой функции к этим начальным аргументам добавляются аргументы, переданные при самом вызове.

Примеры:

// Функция для демонстрации
function greet(greeting, punctuation) {
  console.log(greeting + ' ' + this.name + punctuation);
}

const person = { name: 'Alice' };

// Использование call
greet.call(person, 'Hello', '!'); // Выведет: Hello Alice!

// Использование apply
greet.apply(person, ['Hi', '.']); // Выведет: Hi Alice.

// Использование bind
const greetAlice = greet.bind(person, 'Hey');
greetAlice('...'); // Выведет: Hey Alice...

Таблица:

Метод Передача аргументов
call Список
apply Массив
bind Как начальные аргументы при создании новой функции