⊗jsPmCxBM 443 of 505 menu

A kontextus kötése a bind metódussal JavaScriptben

A következő metódus bind lehetővé teszi, hogy a kontextust véglegesen kössük egy függvényhez. Ez a metódus egy új függvénnyel tér vissza, amelyben a this értéke rideg módon be lesz állítva.

Nézzünk egy példát.

Tegyük fel, hogy van egy inputunk:

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

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

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

Tegyük fel, hogy van a következő func függvényünk:

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éternek '1'-et, a másodiknak pedig '2'-t adunk át (emlékeztetőül: az elem egy input, melynek value értéke 'text'):

newFunc('1', '2');

Hozzuk ö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'

Nem feltétlenül kell a bind eredményét egy új newFunc függvénybe menteni, egyszerűen felülírhatjuk a func-ot is. Ezek után a func ugyanaz a függvény lesz, mint amilyen volt, de a this értéke ridegen kötve lesz hozzá:

func = func.bind(elem);

Tegyük fel, hogy a következő kód adott:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // írja ide a bind() metódussal történő kifejezést func('John', 'Smit'); // itt kell, hogy kiírja: 'hello, John Smit' func('Eric', 'Luis'); // itt kell, hogy kiírja: 'hello, Eric Luis'

Írja a megjelölt helyre a bind metódust úgy, hogy a func függvényen belül a this mindig a elem változóban lévő inputra mutasson.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás