⊗jsOpAdMCL 43 of 60 menu

Tabt af kontekst i metodekode i OOP i JavaScript

Når man bruger kildekoden fra en klassemetode, kan konteksten gå tabt. Lad os se på et eksempel. Lad os sige, at vi har følgende klasse:

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

Lad os oprette et objekt af denne klasse:

let user = new User('john');

Lad os gemme metodekoden i en variabel:

let func = user.getName;

På det tidspunkt, hvor metoden blev gemt i variablen, gik konteksten tabt. Nu vil this inde i metodekoden ikke længere pege på klasseobjektet. Lad os teste ved at kalde vores funktion:

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

For at løse problemet kan man binde konteksten til funktionen, for eksempel via bind:

func = func.bind(user); console.log(func()); // virker
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis