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:

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

javascriptfunction func() {
  console.log(this); // window ga havola
}

func();

Agar rejim qat'iy bo'lsa, this da undefined saqlanadi:

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

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