Obyekt konstruktorlari
Obyekt konstruktor funksiyalari
Ba’zan bir xil turdagi ko‘plab obyektlarni yaratishga to‘g‘ri keladi.
Obyekt turini yaratish uchun biz obyekt konstruktor funksiyasidan foydalanamiz.
Konstruktor funksiyalarini bosh harf bilan nomlash yaxshi amaliyot hisoblanadi.
Person obyekt tipi
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
O‘zingiz sinab ko‘ring »Konstruktor funksiyasida this hech qanday qiymatga ega emas.
Yangi obyekt yaratilganda this qiymati shu yangi obyekt bo‘ladi.
Ko‘proq o‘qish:
Endi biz ko‘plab yangi Person obyektlarini yaratish uchun new Person() dan foydalanishimiz mumkin:
Misol
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
const mySister = new Person("Anna", "Rally", 18, "green");
const mySelf = new Person("Johnny", "Rally", 22, "green");
O‘zingiz sinab ko‘ring »
Xususiyatlarning standart qiymatlari
Xususiyatga berilgan qiymat konstruktor tomonidan yaratilgan barcha obyektlar uchun standart qiymat bo‘ladi:
Misol
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
O‘zingiz sinab ko‘ring »
Obyektga xususiyat qo‘shish
Yaratilgan obyektga xususiyat qo‘shish oson:
Yangi xususiyat myFather ga qo‘shiladi. Boshqa Person obyektlariga qo‘shilmaydi.
Konstruktorga xususiyat qo‘shish
Obyekt konstruktoriga yangi xususiyat qo‘sha olmaysiz:
Yangi xususiyat qo‘shish uchun uni konstruktor funksiyasi prototipiga qo‘shishingiz kerak:
Konstruktor funksiya metodlari
Konstruktor funksiyasida metodlar ham bo‘lishi mumkin:
Misol
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.fullName = function() {
return this.firstName + " " + this.lastName;
};
}
O‘zingiz sinab ko‘ring »
Obyektga metod qo‘shish
Yaratilgan obyektga metod qo‘shish oson:
Konstruktorga metod qo‘shish
Obyekt konstruktor funksiyasiga yangi metod qo‘sha olmaysiz.
Ushbu kod TypeError hosil qiladi:
Misol
Person.changeName = function (name) {
this.lastName = name;
}
myMother.changeName("Doe");
TypeError: myMother.changeName is not a function
Konstruktorga yangi metod qo‘shish konstruktor funksiyasining prototipi orqali amalga oshirilishi kerak:
Misol
Person.prototype.changeName = function (name) {
this.lastName = name;
}
myMother.changeName("Doe");
O‘zingiz sinab ko‘ring »
changeName() funksiyasi name qiymatini shaxsning lastName xususiyatiga o‘zlashtiradi, bunda this o‘rniga myMother qo‘yiladi.
JavaScript’ning o‘rnatilgan konstruktorlari
JavaScript’da barcha ichki (native) obyektlar uchun o‘rnatilgan konstruktorlar mavjud:
new Object() // A new Object object
new Array() // A new Array object
new Map() // A new Map object
new Set() // A new Set object
new Date() // A new Date object
new RegExp() // A new RegExp object
new Function() // A new Function object
O‘zingiz sinab ko‘ring »
Math() obyekti ro‘yxatda yo‘q. Math - global obyekt. new kalit so‘zini Math bilan ishlatib bo‘lmaydi.
Bilasizmi?
new Object() o‘rniga obyekt literallari {}’dan foydalaning.
new Array() o‘rniga massiv literallari []’dan foydalaning.
new RegExp() o‘rniga shablon literallari /()/’dan foydalaning.
new Function() o‘rniga funksiya ifodalari () {}’dan foydalaning.
Misol
""; // primitive string
0; // primitive number
false; // primitive boolean
{}; // object object
[]; // array object
/()/ // regexp object
function(){}; // function
O‘zingiz sinab ko‘ring »
Shuningdek qarang:
Kengaytirilgan bo‘limlar:
JavaScript obyektlarida this (kengaytirilgan)
JavaScript obyekt iteratsiyalari
JavaScript obyekt getter va setterlari
JavaScript obyektlarini boshqarish
JavaScript obyektini himoya qilish
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
