Kontekst nevezane funkcije v JavaScriptu
Poglejmo, kaj se zgodi, če v funkciji
navedemo this, vendar je ne povežemo
z nobenim elementom, takole:
function func() {
console.log(this);
}
func();
V tem primeru je rezultat odvisen od tega,
ali je
strog
naš način ali ne. Če način ni strog,
bo v this shranjena referenca na
window:
function func() {
console.log(this); // referenca na okno window
}
func();
Če pa je način strog, bo v this
shranjen undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Iz zgornjega lahko sklepamo, da bo
v strogem načinu this vedno
undefined. Kako pa ne! Če preprosto
izpišemo this zunaj funkcije, bo vanj
referenca na window neodvisno
od načina:
"use strict";
console.log(this); // v this referenca na window
Zaključki
V kateri koli funkciji lahko napišemo this,
to ne bo povzročilo nobenih napak v JavaScriptu.
Toda kaj točno bo ležalo v tem this,
ni določeno do trenutka klica funkcije.
Poleg tega lahko this ob različnih klicih funkcije
sprejme različne vrednosti. Vse je odvisno
od konteksta, v katerem je bila funkcija poklicana.