Назад к вопросам
Junior
125
questionbank

Что делает функция call в JavaScript?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Функция call в JavaScript вызывает функцию, к которой она применяется, устанавливая специфическое значение this и передавая аргументы по отдельности.

Общий синтаксис:

func.call(thisArg, arg1, arg2, ...);
  • thisArg: Значение, которое будет использоваться в качестве this при вызове func. Если thisArg является null или undefined, this будет заменено глобальным объектом в нестрогом режиме (или останется undefined в строгом режиме).
  • arg1, arg2, ... : Аргументы, передаваемые функции func.

Основные применения:

  • Изменение контекста вызова: Позволяет явно задать, какой объект будет доступен через this внутри функции.
  • Заимствование методов: Дает возможность использовать методы одного объекта для другого.
  • Эмуляция наследования (до классов): В старых версиях JavaScript можно было использовать call для вызова конструктора родителя с контекстом дочернего объекта.

Пример изменения контекста:

function greet() {
  console.log(`Привет, ${this.name}!`);
}

const person = { name: 'Петр' };

greet.call(person); // Выведет: Привет, Петр!

Пример заимствования метода:

const numbers = [1, 2, 3];

// Использование метода массива splice для объекта-аналога
const arrayLike = { 0: 'a', 1: 'b', length: 2 };

Array.prototype.splice.call(arrayLike, 0, 1);

console.log(arrayLike); // Выведет: { 0: 'b', length: 1 }