Metoda bind
Metoda bind lidh kontekstin me një funksion.
Si parametër i parë duhet të kaloni
kontekstin, dhe si parametra pasues - parametrat
e funksionit. Metoda kthen një funksion të ri,
brenda të cilit this do të jetë i barabartë me kontekstin e kaluar.
Sintaksa
funksion.bind(kontekst, parametri1, parametri2...);
Shembull
Le të kemi një input:
<input id="elem" value="text">
Le të jetë lidhja me këtë input të regjistruar në variablin
elem:
let elem = document.querySelector('#elem');
Le të kemi gjithashtu funksionin e mëposhtëm
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Le të bëjmë me anë të bind një
funksion të ri, i cili do të jetë kopje e funksionit func,
por this në të do të jetë gjithmonë i barabartë me elem:
let newFunc = func.bind(elem);
Tani në variablin newFunc ndodhet
një funksion. Le ta thirrim atë, duke kaluar në parametrin e parë
'1', dhe në të dytin '2':
newFunc('1', '2');
Le të mbledhim të gjitha së bashku:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // do të shfaqet 'text12'
Shembull
Nuk është e detyrueshme të regjistrohet rezultati i punës së
bind në një funksion të ri newFunc,
mund thjesht të rishkruhet func:
func = func.bind(elem);