⊗jsOpAdMCL 43 of 60 menu

Izguba konteksta v kodi metode v OOP v JavaScript

Pri uporabi izvorne kode metode razreda se lahko izgubi kontekst. Poglejmo si na primeru. Recimo, da imamo naslednji razred:

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

Ustvarimo objekt tega razreda:

let user = new User('john');

Zapišimo kodo metode v spremenljivko:

let func = user.getName;

V trenutku, ko metodo zapišemo v spremenljivko, se je kontekst izgubil. Zdaj this znotraj kode metode ne bo kazal na objekt razreda. Preverimo, pokličimo našo funkcijo:

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

Za rešitev problema lahko vežemo kontekst na funkcijo, na primer, preko bind:

func = func.bind(user); console.log(func()); // deluje
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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni