⊗jsPmCxCM 440 of 505 menu

Bindning av kontext via metoden call i JavaScript

Så, vi har gått igenom hur this egentligen fungerar. Låt oss nu titta på metoder som gör det möjligt att framtvinga vilken kontext som en funktion anropas i (det vill säga att framtvinga vad this är lika med).

Den första metoden vi ska titta på heter call. Låt oss se den i praktiken med ett exempel. Låt oss säga att vi har ett inputfält:

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

Låt oss hämta en referens till detta inputfält och spara den i variabeln elem:

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

Låt oss nu skapa en funktion func, inuti vilken vi skriver ut this.value:

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

För närvarande vet vår funktion inte vad this refererar till. Om vi skulle binda den via addEventListener, då skulle den veta. Men det kommer vi inte att göra. Istället kommer vi helt enkelt att anropa vår funktion och tala om för den att this ska vara lika med elem.

Detta görs så här: func.call(elem). Denna kod motsvarar ett enkelt funktionsanrop func så här: func(), men med villkoret att this är lika med elem.

Så, syntaxen för metoden call är: funktion.call(objekt). Låt oss samla allt tillsammans:

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // skriver ut inputfältets value } func.call(elem);

Givet en funktion:

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

Givet tre inputfält:

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

Använd metoden call och funktionen func för att skriva ut value för varje inputfält.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa