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:

javascriptfunction 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:

javascriptfunction func() {
  console.log(this); // referenca na prozor window
}

func();

A ako je režim strog, onda će u this biti skladišten undefined:

javascript"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:

javascript"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.