JS this
Obyekt metodidagi this
Misol
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
O‘zingiz sinab ko‘ring »
Obyekt metodida ishlatilganda, this obyektning o‘ziga ishora qiladi.
Yuqoridagi misolda this person obyektiga ishora qiladi.
Chunki fullName metodi person obyektining metodidir.
Obyekt metodini bog‘lash
Ushbu misollarda this person obyekti hisoblanadi:
Misol
const person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
O‘zingiz sinab ko‘ring »
Misol
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
O‘zingiz sinab ko‘ring »
ya’ni this.firstName — this (person obyekti)ning firstName xususiyatidir.
Funksiyani oshkora bog‘lash
call() va apply() metodlari oldindan belgilangan JavaScript metodlaridir.
Ikkalasi ham obyekt metodini boshqa obyektni argument sifatida berib chaqirish uchun ishlatilishi mumkin.
Shuningdek qarang:
Quyidagi misol person1.fullName ni person2 argumenti bilan chaqiradi; fullName person1 ning metodi bo‘lsa ham, this person2 ga ishora qiladi:
Misol
const person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person2 = {
firstName:"John",
lastName: "Doe",
}
// Return "John Doe":
person1.fullName.call(person2);
Funksiyani qarzga olish
bind() metodi yordamida obyekt boshqa obyektdan metodni qarzga olishi mumkin.
Ushbu misol 2 ta obyektni (person va member) yaratadi.
member obyekti fullname metodini person obyektidan qarzga oladi:
Misol
const person = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
const member = {
firstName:"Hege",
lastName: "Nilsen",
}
let fullName = person.fullName.bind(member);
O‘zingiz sinab ko‘ring »
this nima?
JavaScript-da this kalit so‘zi obyektga ishora qiladi.
this kalit so‘zi ishlatilish o‘rniga qarab turli obyektlarni bildiradi:
Alohida holatda this global obyektni (brauzerda window) bildiradi. |
Oddiy funksiyada this global obyektni bildiradi. |
Strict mode’da funksiya ichida this qiymati undefined bo‘ladi. |
Obyekt metodida this ushbu obyektning o‘zini bildiradi. |
Hodisada (event) this hodisani qabul qilgan elementni bildiradi. |
call(), apply() va bind() kabi metodlarda this har qanday obyektga ishora qilishi mumkin. |
this o‘zgaruvchi emas.
this — kalit so‘z.
Siz this qiymatini o‘zgartira olmaysiz.
this ustuvorligi
this qaysi obyektga tegishli ekanligini aniqlash uchun quyidagi tartib ustuvorligidan foydalaning:
| Tartib | obyekt | Chunki |
|---|---|---|
| 1 | bind() | this bind() yordamida chaqirilayotgan funksiya ichida |
| 2 | apply() | this apply() yordamida chaqirilayotgan funksiya ichida |
| 2 | call() | this call() yordamida chaqirilayotgan funksiya ichida |
| 3 | Obyekt metodi | this obyekt funksiyasi (metod) ichida |
| 4 | Global scope | this global scope’dagi funksiya ichida |
Kengaytirilgan bo‘limlar:
JavaScript obyektlari bo‘ylab iteratsiya
JavaScript obyektlarida getter va setterlar
JavaScript obyektlarini boshqarish
JavaScript obyektini himoya qilish
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
