⊗jsOpAdMCL 43 of 60 menu

Konteksta zudums metodes kodā OOP JavaScript

Izmantojot klases metodes pirmkodu, var pazust konteksts. Apskatīsim piemērā. Pieņemsim, ka mums ir šāda klase:

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

Izveidosim šīs klases objektu:

let user = new User('john');

Ierakstīsim metodes kodu mainīgajā:

let func = user.getName;

Brīdī, kad metode tika ierakstīta mainīgajā, konteksts tika zaudēts. Tagad this metodes koda iekšienē norādīs uz klases objektu. Pārbaudīsim, izsauksim mūsu funkciju:

console.log(func()); // kļūda

Lai atrisinātu problēmu, var piesiet kontekstu funkcijai, piemēram, izmantojot bind:

func = func.bind(user); console.log(func()); // strādā
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt