A nem kötött függvény kontextusa a JavaScriptben
Nézzük meg, mi történik, ha egy függvényben
a this-et használjuk, de nem kötjük
hozzá egyetlen elemhez sem, így:
function func() {
console.log(this);
}
func();
Ebben az esetben az eredmény attól függ,
hogy szigorú
a mód vagy sem. Ha a mód nem szigorú,
akkor a this a window-re mutató
hivatkozást fogja tartalmazni:
function func() {
console.log(this); // a window objektumra mutató hivatkozás
}
func();
Ha viszont a mód szigorú, akkor a this
undefined lesz:
"use strict";
function func() {
console.log(this); // undefined
}
func();
A fentiekből az következhetne, hogy
szigorú módban a this mindig
undefined lesz. Dehogyis! Ha egyszerűen
kiíratjuk a this-et a függvényen kívül,
akkor az a window-re mutat, függetlenül
a módtól:
"use strict";
console.log(this); // a this a window-ra mutat
Összefoglalás
Bármely függvényben írhatunk this-et,
ez nem fog JavaScript hibákat okozni.
De hogy pontosan mi lesz a this-ben,
az a függvény meghívásáig nem definiált.
Ráadásul a függvény különböző hívásainál a this
különböző értékeket vehet fel. Minden attól függ,
hogy milyen kontextusban hívták meg a függvényt.