Контекст нефункције везане за објекат у JavaScript-у

Погледајмо шта ће се десити ако у функцији користимо this, али је не вежемо ни за који елемент, овако:

javascriptfunction func() {
  console.log(this);
}

func();

У овом случају резултат зависи од тога да ли строг је режим или није. Ако режим није стриктан, у this ће бити референца на window:

javascriptfunction func() {
  console.log(this); // референца на прозор window
}

func();

А ако је режим стриктан, онда ће у this бити undefined:

javascript"use strict";

function func() {
  console.log(this); // undefined
}

func();

Из горе реченог може се учинити да у строгом режиму this увек биће undefined. Није тако! Ако једноставно испишемо this ван функције, у њему ће бити референца на window независно од режима:

javascript"use strict";
console.log(this); // у this је референца на window

Закључци

У било којој функцији можемо написати this, то неће довести до неких грешака у JavaScript-у. Али шта ће тачно бити у том this није одређено до тренутка позивања функције. Штавише, при различитим позивима функције this може имати различите вредности. Све зависи од контекста у којем је функција позвана.