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

javascriptfüggvény.bind(kontextus, paraméter1, paraméter2...);

Példa

Tegyük fel, hogy van egy inputunk:

html<input id="elem" value="text">

Tegyük fel, hogy ennek az inputnak a hivatkozása egy elem változóban van tárolva:

javascriptlet elem = document.querySelector('#elem');

Tegyük fel, hogy van egy func nevű függvényünk is:

javascriptfunction 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:

javascriptlet 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:

javascriptnewFunc('1', '2');

Állítsuk össze az egészet:

javascriptlet 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:

javascriptlet func = func.bind(elem);

Lásd még

  • a call metódus,
    amely meghívja a függvényt egy kontextussal
  • a apply metódus,
    amely meghívja a függvényt egy kontextussal