⊗jsPmCxBM 443 of 505 menu

Context binding via de bind methode in JavaScript

De volgende methode bind maakt het mogelijk om de context permanent aan een functie te binden. Deze methode geeft als resultaat een nieuwe functie terug, waarin this een rigide vastgestelde waarde zal hebben.

Laten we naar een voorbeeld kijken.

Stel we hebben een input:

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

Stel dat de verwijzing naar deze input is opgeslagen in de variabele elem:

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

Stel we hebben ook de volgende functie func:

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

Laten we met bind een nieuwe functie maken, die een kopie zal zijn van functie func, maar this zal er altijd gelijk zijn aan elem:

let newFunc = func.bind(elem);

Nu ligt er in de variabele newFunc een functie. Laten we hem aanroepen, waarbij we de eerste parameter '1' meegeven, en de tweede '2' (ter herinnering: in elem zit een input met value, gelijk aan 'text'):

newFunc('1', '2');

Laten we alles samenvoegen:

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

Het is niet verplicht om het resultaat van de werking van bind in een nieuwe functie newFunc op te slaan, je kunt simpelweg func overschrijven. Na dit zal func dezelfde functie zijn als ervoor, maar met een rigide gebonden this:

func = func.bind(elem);

Stel de volgende code is gegeven:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // schrijf hier de constructie met bind() func('John', 'Smit'); // hier zou 'hello, John Smit' moeten verschijnen func('Eric', 'Luis'); // hier zou 'hello, Eric Luis' moeten verschijnen

Schrijf op de aangegeven plek de constructie met methode bind zo, dat this binnenin de functie func altijd naar de input van variabele elem wijst.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren