JavaScriptтеги байланышпаган функциянын контексти
Келгиле, функцияда
this көрсөтүлгөн, бирок ал кандайдыр бир элементке
байланышпаган учурда эмне болорун карап көрөлү:
function func() {
console.log(this);
}
func();
Бул учурда жыйынтык биздин режимибиз
катаал
же жокпу экендигине жараша болот. Эгер режим катаал эмес болсо,
this ичинде
window терезесине шилтеме болот:
function func() {
console.log(this); // window терезесине шилтеме
}
func();
Эгер режим катаал болсо, анда this ичинде
undefined болот:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Жогоруда айтылгандардан, катаал режимде this ар дайым
undefined болору көрүнөт. Андай эмес! Эгер жөнөкөй эле
функциянын сыртында this чыгарсак, анда режимге карабастан,
анын ичинде window терезесине шилтеме болот:
"use strict";
console.log(this); // this ичинде window терезесине шилтеме
Корутунду
Кайсы функцияда болбосун this жаза аласыз, бул
JavaScriptте кандайдыр бир каталарга алып келбейт.
Бирок, мына ушул this ичинде так эмне болору
функция чакырылганга чейин аныкталбайт.
Үстөкө, функциянын ар түрдүү чакырылышында this
ар түрдүү маанилерди ала алат. Баары функциянын кайсы
контексте чакырылганына жараша болот.