Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Function.prototype.call

Вызывает функцию с указанным this и аргументами.

Доступно с: ES3

Синтаксис

fn.call(thisArg, arg1, arg2, /* … */)

Параметры

ПараметрТипОписание
thisArganyЗначение this при вызове.
arg1, …anyАргументы функции.

Возвращаемое значение

anyРезультат функции.

Примеры

Одна функция для разных объектов:

function introduce(greeting) {
  return `${greeting}, I am ${this.name}`;
}
 
console.log(introduce.call({ name: 'Anna' }, 'Hi'));
console.log(introduce.call({ name: 'Oleg' }, 'Hello'));

Результат:

Hi, I am Anna
Hello, I am Oleg

Примечания

call() вызывает функцию сразу, а bind() возвращает новую функцию на потом. Разница с apply() — только в способе передачи аргументов.

См. также

  • Function.prototype.apply — Вызывает функцию с указанным this и массивом аргументов.
  • Function.prototype.bind — Создаёт копию функции с закреплённым this и, при желании, аргументами.

В учебнике

  • this, call, apply и bind — Как в JavaScript определяется this, почему метод теряет контекст и как задать this вручную методами call, apply и bind.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.