Методи bind
Методи bind барои пайваст кардани контекст ба функсия аст.
Ҳамчун параметри аввал бояд контекстро гузоред,
ва параметрҳои баъдина – параметрҳои функсия мебошанд.
Метод функсияи наверо бармегардонад,
ки дар дохили он this ба контексти додашуда баробар хоҳад буд.
Синтаксис
функсия.bind(контекст, параметр1, параметр2...);
Намуна
Фарз мекунем, ки мо як воридкунак (input) дорем:
<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);