⊗jsPmCxCM 440 of 505 menu

Binding af kontekst via call-metoden i JavaScript

Så vi har fundet ud af, hvordan this faktisk fungerer. Lad os nu se på metoder, der giver os mulighed for at tvinge angivelse af, i hvilken kontekst en funktion kaldes (det vil sige at tvinge at sige, hvad this er lig med).

Den første metode, vi vil se på, hedder call. Lad os se på dens funktion med et eksempel. Lad os sige, at vi har et inputfelt:

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

Lad os hente referencen til dette inputfelt og gemme det i variablen elem:

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

Lad os nu lave en funktion func, inde i hvilken vi udskriver this.value:

function func() { console.log(this.value); }

Indtil videre ved vores funktion ikke, hvad this refererer til. Hvis vi bundet den gennem addEventListener, så ja. Men det vil vi ikke gøre. I stedet vil vi bare kalde vores funktion og fortælle den, at this skal være lig med elem.

Det gøres sådan her: func.call(elem). Denne kode svarer til et simpelt kald af funktionen func sådan her: func(), kun med betingelsen om, at this er lig med elem.

Så syntaksen for call-metoden er: funktion.call(objekt). Lad os samle alt sammen:

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // vil udskrive inputfeltets value } func.call(elem);

Givet en funktion:

function func() { console.log(this.value); }

Givet tre inputfelter:

<input id="elem1" value="text1"> <input id="elem2" value="text2"> <input id="elem3" value="text3">

Brug metoden call og funktionen func til at udskrive value for hvert af inputfelterne.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis