Konteksti i Funksionit të Pambënuar në JavaScript
Le të shohim se çfarë ndodh nëse në një funksion
përcaktojmë this, por nuk e lidhim atë me
asnjë element, ja kështu:
function func() {
console.log(this);
}
func();
Në këtë rast, rezultati varet nga fakti nëse
kemi mënyrë të rreptë
apo jo. Nëse mënyra nuk është e rreptë,
atëherë në this do të ruhet një referencë për
window:
function func() {
console.log(this); // referencë për dritaren window
}
func();
Por nëse mënyra është e rreptë, atëherë në this do të
ruhet undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Nga sa më sipër mund të duket se
në mënyrën e rreptë this gjithmonë do të jetë
undefined. Por jo kështu! Nëse thjesht
shfaqim this jashtë funksionit, atëherë në të
do të ketë referencë për window pavarësisht
nga mënyra:
"use strict";
console.log(this); // në this ka referencë për window
Përfundimet
Në çdo funksion mund të shkruhet this,
kjo nuk do të çojë në ndonjë gabim JavaScript.
Por çfarë saktësisht do të vendoset në këtë this
nuk përcaktohet deri në momentin e thirrjes së funksionit.
Për më tepër, në thirrje të ndryshme të funksionit this
mund të marrë vlera të ndryshme. E gjitha varet
nga konteksti në të cilin është thirrur funksioni.