Найти в Дзене
Илья Дмитриев

JavaScript. Методы: call, apply, bind

В этой статье мы разобрали как работает this. Если вы пропустили данный материал, рекомендую изучить сначала его. Теперь мы рассмотрим варианты, где контекст т.е. this можно принудительно привязать к функции. Для этого используются следующие методы: 1. call 2. apply 3. bind Рассмотрим эти методы более детально. Метод call Метод call позволяет указать объект, на который будет ссылаться this во время вызова Функции. Метод call применяется к функции, в параметре получает объект. При этом функция выполняется, и внутри нее this становится равным переданному объекту. Помимо контекста, в параметры можно передать необходимые параметры функции. Синтаксис: Пример 1: Вызовем метод sayHi объекта user, в контексте объекта user2 (у которого нет такого метода): Пример 2: Метод call кроме контекста может получать и параметры для функции: Задача Добавьте в последнюю строку метод call() так, чтобы вывелось value инпута, лежащего в переменной elemwent Метод apply Метод apply позволяет указать объ
Оглавление

В этой статье мы разобрали как работает this. Если вы пропустили данный материал, рекомендую изучить сначала его. Теперь мы рассмотрим варианты, где контекст т.е. this можно принудительно привязать к функции. Для этого используются следующие методы:

1. call

2. apply

3. bind

Рассмотрим эти методы более детально.

Метод call

Метод call позволяет указать объект, на который будет ссылаться this во время вызова Функции.

Метод call применяется к функции, в параметре получает объект. При этом функция выполняется, и внутри нее this становится равным переданному объекту. Помимо контекста, в параметры можно передать необходимые параметры функции.

Синтаксис:

-2

Пример 1:

Вызовем метод sayHi объекта user, в контексте объекта user2 (у которого нет такого метода):

-3

Пример 2:

Метод call кроме контекста может получать и параметры для функции:

-4
Задача
.
.

Добавьте в последнюю строку метод call() так, чтобы вывелось value инпута, лежащего в переменной elemwent

Метод apply

Метод apply позволяет указать объект, на который будет ссылаться this во время вызова Функции.

Метод apply применяется к функции, в параметре получает объект. При этом функция выполняется, и внутри нее this становится равным переданному объекту. Помимо контекста, можно передать второй параметр - массив параметров для функции.

Другими словами apply принимает параметры в виде массива, и не в коем случае не перечисляются через запятую, как в методе call. Это и есть отличие. Вам может быть удобен либо один, либо другой метод.

Синтаксис:

-6

Пример:

Метод apply кроме контекста может получать массив параметров для функции

-7

Метод bind

Метод bind используется для привязки контекста к функции навсегда. Метод первым параметром принимает контекст, следующие параметры - это параметры функции. Метод возвращает новую функцию, внутри которой this будет равным переданному контексту.

В отличии от call или apply функция не выполняется сразу. А лишь возвращается новая функция, которую можно вызвать в любой момент.

Синтаксис:

-8

Пример:

Потерять контекст можно при передачи функции в таймер. Но для того, что бы не терять контекст, мы воспользуется bind:

-9