Встречается на собеседованиях • сегодня

В чем разница между передачей аргументов в call и в apply

Оба метода вызывают функцию с указанным контекстом this, но различаются способом передачи аргументов:

  • call принимает аргументы через запятую:
js
func.call(context, arg1, arg2, ...)
  • apply принимает аргументы в виде массива (или array-like объекта):
js
func.apply(context, [arg1, arg2, ...])

Пример:

js
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?"

В современных версиях JS чаще используют call или spread-оператор с apply:

js
const args = ['Hey', '...'];
greet.call(person, ...args); // "Hey, Alice..."
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы