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
thismetodun 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') —thisundefinedolacaq. - Qatı olmayan rejimdə — qlobal obyekt (
windowbrauzerdə).
- Qatı rejimdə (
function foo() {
console.log(this);
}
foo(); // window və ya strict rejimdə undefined
- Ox funksiyalarında
thisleksik 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.