⊗jsOpAdMCL 43 of 60 menu

A kontextus elvesztése a metóduskódban az OOP-ben JavaScriptben

Az osztály metódusának forráskódjának használatakor elveszhet a kontextus. Nézzük meg egy példán. Tegyük fel, hogy a következő osztályunk van:

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

Hozzunk létre egy objektumot ebből az osztályból:

let user = new User('john');

Írjuk a metódus kódját egy változóba:

let func = user.getName;

A metódus változóba írásakor elveszett a kontextus. Most a this a metóduskódban nem fog mutatni az osztály objektumára. Ellenőrizzük, hívjuk meg a függvényünket:

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

A probléma megoldásához köthetjük a kontextust a függvényhez, például a bind segítségével:

func = func.bind(user); console.log(func()); // működik
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás