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