⊗jsOpAdMCL 43 of 60 menu

Verlies van context in methodecode in OOP in JavaScript

Bij het gebruik van de broncode van een klasse methode kan de context verloren gaan. Laten we een voorbeeld bekijken. Stel we hebben de volgende klasse:

class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }

Laten we een object van deze klasse maken:

let user = new User('john');

Laten we de methodecode in een variabele opslaan:

let func = user.getName;

Op het moment dat de methode in een variabele werd opgeslagen, is de context verloren gegaan. Nu zal this in de methodecode niet meer verwijzen naar het klasse object. Laten we het testen door onze functie aan te roepen:

console.log(func()); // fout

Om het probleem op te lossen kan de context aan de functie gebonden worden, bijvoorbeeld via bind:

func = func.bind(user); console.log(func()); // werkt
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