Метод bind
Методът bind позволява да се привърже контекст към функция.
Като първи параметър трябва да се подаде
контекст, а следващите параметри са параметрите
на функцията. Методът връща нова функция,
в която this ще бъде равен на подадения
контекст.
Синтаксис
функция.bind(контекст, параметър1, параметър2...);
Пример
Нека имаме input поле:
<input id="elem" value="text">
Нека референцията към този input бъде записана в променливата
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);