I de fleste objektorienterede programmeringssprog har nøgleordet 'this' en særlig betydning. Normalt henviser det til det objekt, der er udførelseskonteksten (dvs. til den aktuelle forekomst af objektet). Vi bruger det for eksempel, når vi henviser til en objektegenskab indefra: Vi skriver this.propertyName, og så er konteksten objektet, og this henviser til det.
'dette'i JavaScript
I JavaScript er det mere kompliceret, fordi hvor dette refererer til, afhænger ikke kun af, hvordan funktionen er defineret, men også af, hvordan den kaldes.
Se her, hvordan dette fungerer afhængigt af påkaldelsessted og -form.
Global sammenhæng
Bruges i en global kontekst, der er bundet til det globale objekt, som f.eks. vindue i en webbrowser.
dette; // vindue
Inde i objektmetoden
Bruges inde i en objektmetode, der er bundet til det nærmeste omsluttende objekt. Objektet er den nye kontekst for dette nøgleord. Bemærk, at du ikke bør ændre funktion () til ES6-syntaks fun: () => this.context fordi det vil ændre konteksten.
Bruges i en funktion, der ikke har nogen kontekst (ikke har noget objekt som overordnet), der er bundet til den globale kontekst, selv om funktionen er defineret inde i objektet.
Bemærk, at vi bruger var kontekst i stedet for let/const-kontekst fordi lade og konst. ændre den vedlagte kontekst for variablen. var er altid tættest på den globale udførelseskontekst. lade og konst. erklærer kun variabler i et lokalt blokområde.
opkald() og anvende() er JavaScript funktioner. Med dem kan et objekt bruge metoder, der tilhører et andet objekt. opkald() tager argumenter separat, hvor anvende() tager dem som et array.
dette er her bundet til en ny kontekst, der er ændret i opkald() og anvende() metoder.