Kontekst nevezane funkcije u JavaScript-u
Pogledajmo šta će se dogoditi ako u funkciji
navedemo this, ali je ne vežemo ni
za koji element, ovako:
function func() {
console.log(this);
}
func();
U ovom slučaju rezultat zavisi od toga da li je
strog
režim ili ne. Ako režim nije strog,
onda će u this biti skladištena referenca na
window:
function func() {
console.log(this); // referenca na prozor window
}
func();
A ako je režim strog, onda će u this biti
skladišten undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Iz navedenog gore može se učiniti da će
u strogom režimu this uvek biti
undefined. Nipošto! Ako jednostavno
ispisemo this van funkcije, onda će u njemu
biti referenca na window nezavisno
od režima:
"use strict";
console.log(this); // u this referenca na window
Zaključci
U bilo kojoj funkciji možemo napisati this,
to neće dovesti do nekih grešaka u JavaScript-u.
Ali šta će tačno biti u ovom this
nije određeno do trenutka poziva funkcije.
Štaviše, pri različitim pozivima funkcije this
može imati različite vrednosti. Sve zavisi
od konteksta u kojem je funkcija pozvana.