Seotud funktsiooni kontekst JavaScriptis
Vaatame, mis juhtub, kui funktsioonis
kasutada this, kuid seda ei seota
ühegi elemendiga, nagu siin:
function func() {
console.log(this);
}
func();
Sel juhul sõltub tulemus sellest,
kas meil on ranget
režiimi või mitte. Kui režiim ei ole range,
siis this sisaldab viidet
windowle:
function func() {
console.log(this); // viit aknale window
}
func();
Kui režiim on range, siis this
sisaldab undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Eelnevast võib jääda mulje, et
ranges režiimis on this alati
undefined. Kuidas nii! Kui lihtsalt
väljastada this funktsioonist väljas,
siis on selles viide windowle sõltumata
režiimist:
"use strict";
console.log(this); // this sisaldab viidet windowle
Järeldused
Igas funktsioonis saab kirjutada this,
see ei põhjusta JavaScriptis vigu.
Kuid mis täpselt this sisu on,
ei ole defineeritud enne funktsiooni käivitamist.
Pealegi võib this erinevatel
funktsiooni kutsetel omada erinevat väärtust.
Kõik sõltub kontekstist, milles funktsiooni kutsuti.