⊗jsPmCxBM 443 of 505 menu

Binding af kontekst via bind-metoden i JavaScript

Den næste metode bind tillader at binde konteksten til en funktion permanent. Som resultat returnerer denne metode en ny funktion, hvor this vil have en fastsat værdi.

Lad os se på et eksempel.

Antag, at vi har et inputfelt:

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

Antag, at referencen til dette inputfelt er gemt i variablen elem:

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

Antag, at vi også har følgende funktion func:

function func(param1, param2) { console.log(this.value + param1 + param2); }

Lad os ved hjælp af bind lave en ny funktion, som vil være en kopi af funktionen func, men this i den vil altid være lig med elem:

let newFunc = func.bind(elem);

Nu ligger der en funktion i variablen newFunc. Lad os kalde den og sende '1' som den første parameter og '2' som den anden (jeg minder om, at elem indeholder inputfeltet med value lig med 'text'):

newFunc('1', '2');

Lad os samle alt sammen:

let elem = document.getElementById('elem'); function func(param1, param2) { console.log(this.value + param1 + param2); } let newFunc = func.bind(elem); newFunc('1', '2'); // vil udskrive 'text12'

Det er ikke nødvendigt at gemme resultatet af bind i en ny funktion newFunc, man kan simpelthen overskrive func. Efter det vil func være den samme funktion som før, men med en fast bundet this:

func = func.bind(elem);

Antag, at følgende kode er givet:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // skriv konstruktionen med bind() her func('John', 'Smit'); // her skal det udskrive 'hello, John Smit' func('Eric', 'Luis'); // her skal det udskrive 'hello, Eric Luis'

Skriv på det angivne sted en konstruktion med metoden bind, således at this inde i funktionen func altid peger på inputfeltet fra variablen elem.

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