# Метод bind

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

## Синтаксис

`функция.bind(контекст, параметр1, параметр2...);`

## Пример

Пусть у нас есть инпут:

`<input id="elem" value="text">`

Пусть ссылка на этот инпут записана в переменную `elem`:

`let elem = document.querySelector('#elem');`

Пусть у нас также есть следующая функция `func`:

`function func(param1, param2) { console.log(this.value + param1 + param2); }`

Давайте с помощью `bind` сделаем новую функцию, которая будет копией функции `func`, но `this` в ней всегда будет равен `elem`:

`let newFunc = func.bind(elem);`

Теперь в переменной `newFunc` лежит функция. Давайте вызовем ее, передав в первый параметр `'1'`, а во второй `'2'`:

`newFunc('1', '2');`

Давайте соберем все вместе:

`let elem = document.getElementById('elem'); function func(param1, param2) { console.log(this.value + param1 + param2); } let newFunc = func.bind(elem); newFunc('1', '2'); // выведет 'text12'`

## Пример

Не обязательно записывать результат работы `bind` в новую функцию `newFunc`, можно просто перезаписать `func`:

`let func = func.bind(elem);`

## Смотрите также

- метод `call`,
  который вызывает функцию с контекстом
- метод `apply`,
  который вызывает функцию с контекстом

← →
↑
en ru