⊗jsPmCxBM 443 of 505 menu

Kontekstbinding deur die bind-metode in JavaScript

Die volgende metode bind laat toe om konteks permanent aan 'n funksie te bind. Hierdie metode lewer as resultaat 'n nuwe funksie, waarin this 'n vasgestelde waarde sal hê.

Kom ons kyk na 'n voorbeeld.

Gestel ons het 'n invoerveld:

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

Gestel die verwysing na hierdie invoerveld is in die veranderlike elem gestoor:

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

Gestel ons het ook die volgende funksie func:

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

Kom ons maak met bind 'n nuwe funksie wat 'n kopie van funksie func is, maar this daarin sal altyd gelyk wees aan elem:

let newFunc = func.bind(elem);

Nou lê daar 'n funksie in die veranderlike newFunc. Kom ons roep dit aan, deur die eerste parameter '1', en die tweede '2' te stuur (ek herinner u daaraan dat in elem 'n invoerveld met value wat gelyk is aan 'text' lê):

newFunc('1', '2');

Kom ons saam dit alles saam:

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

Dit is nie nodig om die resultaat van die werk bind in 'n nuwe funksie newFunc te stoor nie, jy kan net func ooranskryf. Daarna sal func dieselfde funksie wees as tevore, maar met 'n vaste gebonde this:

func = func.bind(elem);

Gestel die volgende kode word gegee:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // skryf hier die konstruksie met bind() func('John', 'Smit'); // hier moet 'hello, John Smit' uitvoer func('Eric', 'Luis'); // hier moet 'hello, Eric Luis' uitvoer

Skryf op die aangeduide plek 'n konstruksie met die metode bind sodat this binne die funksie func altyd na die invoerveld van die veranderlike elem wys.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp