Sobes.tech
Назад к вопросам
Junior — Middle
89

Чем отличаются функции call и apply в контексте вызова методов в JavaScript?

Ответ от нейросети

sobes.tech AI

В JavaScript функции call и apply используются для вызова функции с явным указанием контекста (this), но отличаются способом передачи аргументов:

  • call(thisArg, arg1, arg2, ...) — принимает список аргументов через запятую.
  • apply(thisArg, [argsArray]) — принимает аргументы в виде массива или подобного массива объекта.

Пример:

function greet(greeting, punctuation) {
  console.log(greeting + ', ' + this.name + punctuation);
}

const person = { name: 'Анна' };

greet.call(person, 'Привет', '!');      // Привет, Анна!
greet.apply(person, ['Здравствуйте', '...']); // Здравствуйте, Анна...

apply удобен, когда аргументы уже находятся в массиве, а call — когда аргументы известны и передаются явно.