Function.prototype.call
Вызывает функцию с указанным this и аргументами.
Доступно с: ES3
Синтаксис
fn.call(thisArg, arg1, arg2, /* … */)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| thisArg | any | Значение 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.