JavaScriptda Bog'lanmagan Funktsiya Konteksti
Keling, funktsiyada
this ko'rsatilgan, lekin u hech qanday
elementga bog'lanmagan bo'lsa nima bo'lishini ko'rib chiqaylik:
function func() {
console.log(this);
}
func();
Bunday holatda natija bizning rejimimiz
qat'iy
yoki yo'qligiga bog'liq. Agar rejim qat'iy bo'lmasa,
this da window ga havola saqlanadi:
function func() {
console.log(this); // window ga havola
}
func();
Agar rejim qat'iy bo'lsa, this da
undefined saqlanadi:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Yuqoridagilardan shunday tuyuladiki,
qat'iy rejimda this har doim
undefined bo'ladi. Lekin bu mutlaqo to'g'ri emas! Agar shunchaki
this ni funktsiyadan tashqarida chiqarsak, unda
window ga havola bo'ladi, rejimdan qat'iy nazar:
"use strict";
console.log(this); // this da window ga havola
Xulosa
Har qanday funktsiyada this yozish mumkin,
bu JavaScriptning biron bir xatoligiga olib kelmaydi.
Lekin aynan nima ushbu this da bo'lishi
funktsiya chaqirilgunga qadar aniq emas.
Bundan tashqari, funktsiyaning har xil chaqiruvlarida this
turli qiymatlarni qabul qilishi mumkin. Hammasi
funktsiya qaysi kontekstda chaqirilganiga bog'liq.