Kontekst til ubundet funksjon i JavaScript
La oss se hva som skjer hvis vi bruker
this i en funksjon
uten å binde den til
noe element, slik:
function func() {
console.log(this);
}
func();
I dette tilfellet avhenger resultatet av om
vi er i
streng modus
eller ikke. Hvis modusen ikke er streng,
vil this inneholde en referanse til
window:
function func() {
console.log(this); // referanse til vinduet window
}
func();
Og hvis modusen er streng, vil this
inneholde undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Av ovenstående kan det virke som om
this alltid vil være
undefined i streng modus. Ikke sant! Hvis man bare
skriver ut this utenfor en funksjon, vil den
inneholde en referanse til window uavhengig
av modus:
"use strict";
console.log(this); // i this referanse til window
Konklusjoner
I enhver funksjon kan man skrive this,
dette vil ikke føre til noen feil i JavaScript.
Men hva som exactly vil ligge i denne this
er ikke definert før funksjonen kalles.
Dessuten kan this i samme funksjon
ha forskjellig verdi ved forskjellige kall. Alt avhenger
av konteksten funksjonen ble kalt i.