Bind metodas
Metodas bind leidžia pririšti kontekstą prie funkcijos.
Kaip pirmą parametrą reikia perduoti
kontekstą, o tolesniais parametrais - funkcijos
parametrus. Metodas grąžina naują funkciją,
kurios viduje this bus lygus perduotam
kontekstui.
Sintaksė
funkcija.bind(kontekstas, parametras1, parametras2...);
Pavyzdys
Tarkime, kad turime įvesties lauką:
<input id="elem" value="text">
Tarkime, kad nuoroda į šį įvesties lauką yra įrašyta į kintamąjį
elem:
let elem = document.querySelector('#elem');
Tarkime, kad taip pat turime šią funkciją
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Naudodami bind sukurkime naują
funkciją, kuri bus funkcijos func kopija,
bet this joje visada bus lygus elem:
let newFunc = func.bind(elem);
Dabar kintamajame newFunc yra
funkcija. Iškvieskime ją, perduodant į pirmą
parametrą '1', o į antrą '2':
newFunc('1', '2');
Sujungkime viską kartu:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // išvests 'text12'
Pavyzdys
Nebūtinai reikia įrašyti bind rezultatą
į naują funkciją newFunc,
galima tiesiog perrašyti func:
let func = func.bind(elem);