Sobes.tech
Middle

Bu barədə müxtəlif kontekstlərdə danış: obyekt metodlarında, ox funksiyalarında və adi funksiyalarda.

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript-də this dəyəri çağırış kontekstindən asılıdır:

  • Obyekt metodlarında this metodun aid olduğu obyektə istinad edir:
const obj = {
  name: 'Alice',
  greet() {
    console.log(this.name);
  }
};
obj.greet(); // Alice
  • Adi funksiyada (metod deyil) this çağırış rejimi və üsulundan asılıdır:
    • Qatı rejimdə ('use strict') — this undefined olacaq.
    • Qatı olmayan rejimdə — qlobal obyekt (window brauzerdə).
function foo() {
  console.log(this);
}
foo(); // window və ya strict rejimdə undefined
  • Ox funksiyalarında this leksik olaraq xarici kontekstdən miras alınır, yəni funksiyanın elan olunduğu sahədən götürülür, çağırıldığı yerdən deyil:
const obj = {
  name: 'Bob',
  arrowFunc: () => {
    console.log(this.name);
  },
  regularFunc() {
    const arrow = () => {
      console.log(this.name);
    };
    arrow();
  }
};
obj.arrowFunc(); // undefined və ya xarici kontekstdən ad
obj.regularFunc(); // Bob

Bu səbəbdən, ox funksiyalar xarici funksiyanın this kontekstini saxlamaq üçün əlverişlidir, adi funksiyalar və metodlar isə çağırışına görə öz this dəyərinə malikdir.