Контекст нефункције везане за објекат у JavaScript-у
Погледајмо шта ће се десити ако у функцији
користимо this, али је не вежемо ни
за који елемент, овако:
function func() {
console.log(this);
}
func();
У овом случају резултат зависи од тога да ли
строг
је режим или није. Ако режим није стриктан,
у this ће бити референца на
window:
function func() {
console.log(this); // референца на прозор window
}
func();
А ако је режим стриктан, онда ће у this
бити undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Из горе реченог може се учинити да
у строгом режиму this увек
биће undefined. Није тако! Ако једноставно
испишемо this ван функције, у њему ће
бити референца на window независно
од режима:
"use strict";
console.log(this); // у this је референца на window
Закључци
У било којој функцији можемо написати this,
то неће довести до неких грешака у JavaScript-у.
Али шта ће тачно бити у том this
није одређено до тренутка позивања функције.
Штавише, при различитим позивима функције this
може имати различите вредности. Све зависи
од контекста у којем је функција позвана.