⊗jsOpAdMCL 43 of 60 menu

Konteksti kaotamine meetodi koodis OOP-s JavaScriptis

Klassi meetodi lähtekoodi kasutamisel võib kontekst kaduda. Vaatame näidet. Olgem meil järgmine klass:

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

Loome selle klassi objekti:

let user = new User('john');

Kirjutame meetodi koodi muutujasse:

let func = user.getName;

Meetodi muutujasse kirjutamise hetkel kontekst kaob. Nüüd ei osuta this meetodi koodi sees enam klassi objektile. Kontrollime, käivitame oma funktsiooni:

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

Probleemi lahendamiseks saab siduda konteksti funktsiooniga, näiteks läbi bind:

func = func.bind(user); console.log(func()); // töötab
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu