Методот 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);