Встречается на собеседованиях • сегодня
В чем разница между передачей аргументов в 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..."
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы