JavaScript-da baglanyşykly däl funksiýanyň konteksti
Geliň, bir funksiýada this görkezilen, ýöne hiç hili elemente baglanmadyk ýagdaýda näme boljakdygyna göz aýlalyň:
function func() {
console.log(this);
}
func();
Bu ýagdaýda netije, bizde
gaty
ýa-da gaty däl režimiň bardygyna bagly. Eger režim gaty däl bolsa,
onda this-de
window-a baglanyşyk saklanar:
function func() {
console.log(this); // window-a baglanyşyk
}
func();
Eger režim gaty bolsa, onda this-de
undefined saklanar:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Ýokardaky aýdylanlardan, gaty režimde this-iň hemişe
undefined boljakdygy hasap edilip biler. Ýöne şeýle däl! Eger diňe
this-i funksiýanyň daşynda çykarsak, onda onda režime seretmezden,
window-a baglanyşyk bolar:
"use strict";
console.log(this); // this-de window-a baglanyşyk
Netije
Islendik funksiýada this ýazyp bolýar, bu JavaScript-de hiç hili ýalňyşlyklara getirmez. Ýöne bu this-de nämeniň bardygyny funksiýa çagyrylýan wagtyna çenli kesgitlenok. Hem-de dürli çagyryşlarda this dürli bahalary alyp biler. Hemmesi funksiýanyň haýsy kontekstde çagyrylandygyna bagly.