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
thismetodga tegishli obyektga ishora qiladi:
const obj = {
name: 'Alice',
greet() {
console.log(this.name);
}
};
obj.greet(); // Alice
- Oddiy funksiyada (metod emas)
thischaqirish rejimi va usuliga bog'liq:- Qattiq rejimda (
'use strict') —thisundefinedbo'ladi. - Qattiq bo'lmagan rejimda — global obyekt (
windowbrauzerda).
- Qattiq rejimda (
function foo() {
console.log(this);
}
foo(); // window yoki strict rejimda undefined
- Arrow funksiyalarida
thistashqi 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.