I de flesta objektorienterade programmeringsspråk har nyckelordet "this" en speciell betydelse. Vanligtvis hänvisar det till objektet som är exekveringskontexten (dvs. till den aktuella instansen av objektet). Vi använder till exempel this när vi refererar till en objektsegenskap inifrån: vi skriver this.propertyName, och då är kontexten objektet och this refererar till det.
'detta'i JavaScript
I JavaScript är det mer komplicerat eftersom där detta hänvisar till beror inte bara på hur funktionen är definierad utan också på hur den anropas.
Ta en titt på hur detta fungerar beroende på invokationsplats och form.
Globalt sammanhang
Används i en global kontext som är bunden till det globala objektet, t.ex. fönster i en webbläsare.
detta; // fönster
Inuti objektmetod
Används inuti en objektmetod som är bunden till det närmast omslutande objektet. Objektet är den nya kontexten för detta nyckelord. Observera att du inte bör ändra funktion () till ES6-syntax fun: () => this.context eftersom det kommer att ändra sammanhanget.
Används i en funktion som inte har någon kontext (har inget objekt som överordnat) som är bunden till den globala kontexten, även om funktionen är defindad i objektet.
Observera att vi använder var sammanhang istället för let/const sammanhang eftersom Låt och konst ändra variabelns inneslutna sammanhang. var är alltid närmast den globala exekveringskontexten. Låt och konst deklarera variabler endast i ett lokalt blockomfång.
anrop() och tillämpa() är JavaScript funktioner. Med hjälp av dessa kan ett objekt använda metoder som tillhör ett annat objekt. anrop() tar argument separat där tillämpa() tar dem som en matris.
detta är här bundet till nya sammanhanget ändras i anrop() och tillämpa() metoder.