JavaScript'da o'zi this kalit so'zi nima? Bu umuman olganda qayerda foydalanishiga qarab xar-xil qiymatga ega bo'ladi. Keling ularni birma-bir ko'rib chiqamiz.
- Global context’da.
this → windowobyektini ko‘rsatadi. Agarstrict modebo'lsaundefinedga teng bo'ladi.
console.log(this) // Window- Regular funksiya ichida global obyektga teng.
function fn(){
console.log(this)
}
fn() // Window- Obyekt metodi sifatida o’sha obyektga teng
const user = {
name: "Azizbek",
greet() {
console.log(`Salom, men ${this.name}`);
}
};
user.greet(); // Salom, men Azizbek- Konstructor funksiyada o’sha funksiya qaytaradigan obyektga teng.
function User(name) {
this.name = name;
this.sayHi = function() {
console.log(`Salom, men ${this.name}`);
};
}
const user1 = new User("Azizbek");
user1.sayHi(); // Salom, men Azizbek- Arrow funksiyada bitta yuqoridagi scope’ning this qiymatiga teng.
function User(name) {
this.name = name;
this.sayHi = () => {
console.log(`Salom, men ${this.name}`);
};
}
const user1 = new User("Azizbek");
user1.sayHi(); // Salom, men AzizbekShunchaki bu misollar bilan xulosa qilib bo’lmaydi. O’zgarish holatlari ko’p. O’rganib chiqishni tafsiya qilaman.