this kalit so'zi
Rajabov DostonAssalaamu alaykum!
Bugungi maqolamizda this kalit so'zi haqida tushunchaga ega bo'lamiz. Boshladik.
JavaScript-da this kalit so'zi ob'ektga ishora qiladi. Qaysi ob'ekt bu qanday chaqirilayotganiga (ishlatilgan yoki chaqirilganiga) bog'liq. Bu kalit so'z qanday ishlatilishiga qarab turli xil ob'ektlarga ishora qiladi.
1. this = window
Bu har qanday funktsiya yoki methoddan tashqarida ishlatilsa, u global ob'ektga ishora qiladi.
console.log(this); // Global ob'ektga ishora qiladi (masalan, brauzer oynasi)
2. Funktsiya konteksti
Funktsiyada foydalanilganda (arrow funktsiyasi emas), bu global ob'ektga ishora qiladi, agar funktsiya ob'ektning methodi bo'lmasa. Bunday holda, u method chaqirilgan ob'ektga ishora qiladi.
function exampleFunction() {
console.log(this);
}
exampleFunction(); //Global ob'ektga ishora qiladi
3. this = object
const obj = {
firstName: "Doston",
lastName:"Rajabov",
fullName(){
console.log(this.firstName+ " " + this.lastName)
}
};
obj.fullName(); // obj ga ishora qiladi => Doston Rajabov
4. Arrow function
Arrow funksiyalarining o'ziga xos this konteksti yo'q. Buning o'rniga, ular buni atrofdagi doiradan meros qilib olishadi.
const myObject = {
regularMethod: function() {
console.log(this === myObject); // true
},
arrowMethod: () => {
console.log(this === myObject); // false, chunki arrow funksiyalar this ni meros qilib oladi. Arrow funksiyalarni o'zida this kalit so'zi mavjud emas. Hozirgi holatda this=window
}
};
myObject.regularMethod();
myObject.arrowMethod();
5. this=element
this kalit so'zi biror bir html elementimizga qo'shilgan event lar ichida ishlatilsa, this aynan o'sha elementga teng bo'ladi.
<button id="myButton"> My button </button>
document.getElementById('myButton').addEventListener('click', function() {
console.log(this); // <button id="myButton"> My button </button>
});
6. Konstruktor funksiya
Konstruktor funktsiyasi ichida bu ob'ektning yangi yaratilgan namunasiga ishora qiladi.
function Person(name) {
this.name = name;
}
const person1 = new Person('John');
console.log(person1.name); // John
Ushbu maqola orqali this kalit so'zini ishlatilishini ko'rib chiqdik. Sizlarga tushunarli bo'ldi degan umiddaman. To'liqroq ma'lumot olish uchun ushbu maqola bilan tanishib chiqing.
Maqolada yo'l qo'yilgan imloviy xatolarga e'tibor bermaysiz degan umiddaman 😉😉