JavaScriptтеги байланышпаган функциянын контексти

Келгиле, функцияда this көрсөтүлгөн, бирок ал кандайдыр бир элементке байланышпаган учурда эмне болорун карап көрөлү:

javascriptfunction func() {
  console.log(this);
}

func();

Бул учурда жыйынтык биздин режимибиз катаал же жокпу экендигине жараша болот. Эгер режим катаал эмес болсо, this ичинде window терезесине шилтеме болот:

javascriptfunction func() {
  console.log(this); // window терезесине шилтеме
}

func();

Эгер режим катаал болсо, анда this ичинде undefined болот:

javascript"use strict";

function func() {
  console.log(this); // undefined
}

func();

Жогоруда айтылгандардан, катаал режимде this ар дайым undefined болору көрүнөт. Андай эмес! Эгер жөнөкөй эле функциянын сыртында this чыгарсак, анда режимге карабастан, анын ичинде window терезесине шилтеме болот:

javascript"use strict";
console.log(this); // this ичинде window терезесине шилтеме

Корутунду

Кайсы функцияда болбосун this жаза аласыз, бул JavaScriptте кандайдыр бир каталарга алып келбейт. Бирок, мына ушул this ичинде так эмне болору функция чакырылганга чейин аныкталбайт. Үстөкө, функциянын ар түрдүү чакырылышында this ар түрдүү маанилерди ала алат. Баары функциянын кайсы контексте чакырылганына жараша болот.