⊗jsOpAdMCL 43 of 60 menu

Strata kontextu v kóde metódy v OOP v JavaScripte

Pri použití zdrojového kódu metódy triedy môže dôjsť k strate kontextu. Pozrime sa na príklad. Majme nasledujúcu triedu:

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

Vytvorme objekt tejto triedy:

let user = new User('john');

Zapíšme kód metódy do premennej:

let func = user.getName;

V momente zápisu metódy do premennej sa kontext stratil. Teraz this vnútri kódu metódy nebude ukazovať na objekt triedy. Skontrolujme, zavolajme našu funkciu:

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

Na vyriešenie problému je možné priviazať kontext k funkcii, napríklad cez bind:

func = func.bind(user); console.log(func()); // funguje
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť