Sobes.tech
Middle

Bu haqida turli kontekstlarda gapir: ob'ekt metodlarida, shuningdek, o'q funktsiyalarida va oddiy funktsiyalarda.

sobes.tech AI

AIdan javob

JavaScriptda this qiymati chaqirish kontekstiga bog'liq:

  • Obyekt metodlarida this metodga tegishli obyektga ishora qiladi:
const obj = {
  name: 'Alice',
  greet() {
    console.log(this.name);
  }
};
obj.greet(); // Alice
  • Oddiy funksiyada (metod emas) this chaqirish rejimi va usuliga bog'liq:
    • Qattiq rejimda ('use strict') — this undefined bo'ladi.
    • Qattiq bo'lmagan rejimda — global obyekt (window brauzerda).
function foo() {
  console.log(this);
}
foo(); // window yoki strict rejimda undefined
  • Arrow funksiyalarida this tashqi kontekstdan leksik ravishda meros oladi, ya'ni funksiyaning e'lon qilingan joyidan olinadi, chaqirilgan joyidan emas:
const obj = {
  name: 'Bob',
  arrowFunc: () => {
    console.log(this.name);
  },
  regularFunc() {
    const arrow = () => {
      console.log(this.name);
    };
    arrow();
  }
};
obj.arrowFunc(); // undefined yoki tashqi kontekst nomi
obj.regularFunc(); // Bob

Shuning uchun, arrow funksiyalar tashqi funksiyaning this kontekstini saqlash uchun qulay, oddiy funksiyalar va metodlar esa chaqirilishiga qarab o'zining this qiymatiga ega bo'ladi.