⊗jsOpAdMCL 43 of 60 menu

Konteksverlies in 'n metode se kode in OOP in JavaScript

Wanneer die bronkode van 'n klasmetode gebruik word, kan die konteks verlore gaan. Kom ons kyk na 'n voorbeeld. Laat ons die volgende klas hê:

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

Kom ons skep 'n objek van hierdie klas:

let user = new User('john');

Kom ons skryf die metode se kode in 'n veranderlike:

let func = user.getName;

Op die oomblik wanneer die metode in die veranderlike geskryf word, het die konteks reeds verlore gegaan. Nou sal this binne die metode se kode nie na die klasobjek wys nie. Kom ons toets deur ons funksie te roep:

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

Om die probleem op te los, kan jy die konteks aan die funksie bind, bv. deur gebruik te maak van bind:

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