A bind metódus
A bind metódus egy függvényhez köti a kontextust.
Az első paraméterként a kontextust kell átadni,
a további paraméterekként pedig a függvény paramétereit.
A metódus egy új függvényt ad vissza,
amelyben a this egyenlő lesz az átadott
kontextussal.
Szintaxis
függvény.bind(kontextus, paraméter1, paraméter2...);
Példa
Tegyük fel, hogy van egy inputunk:
<input id="elem" value="text">
Tegyük fel, hogy ennek az inputnak a hivatkozása egy elem
változóban van tárolva:
let elem = document.querySelector('#elem');
Tegyük fel, hogy van egy func nevű függvényünk
is:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Készítsünk a bind segítségével egy új
függvényt, amely a func függvény másolata,
de a this benne mindig elem lesz:
let newFunc = func.bind(elem);
Most a newFunc változóban egy
függvény található. Hívjuk meg úgy, hogy az első
paraméterként '1'-et, a másodiknak pedig '2'-t
adunk át:
newFunc('1', '2');
Állítsuk össze az egészet:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // kiírja 'text12'
Példa
Nem feltétlenül kell egy új newFunc
függvénybe menteni a bind eredményét,
egyszerűen felül is írhatjuk a func-ot:
let func = func.bind(elem);