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ň:

javascriptfunction 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:

javascriptfunction func() {
  console.log(this); // window-a baglanyşyk
}

func();

Eger režim gaty bolsa, onda this-de undefined saklanar:

javascript"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:

javascript"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.