Назад к вопросам
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 }