JavaScript Obyekt Prototiplari
JavaScript-da barcha obyektlar o'z prototipidan xususiyatlar va metodlarni meros qilib oladi.
Prototip orqali merosxo'rlik
DateobyektlariDate.prototype-dan meros oladi.ArrayobyektlariArray.prototype-dan meros oladi.Object.prototypebarcha merosxo'rlik zanjirining eng yuqori qismida turadi.
Konstruktorga xususiyat va metodlar qo'shish
Ba'zan siz mavjud bo'lgan barcha ma'lum turdagi obyektalarga yangi xususiyat yoki metod qo'shmoqchi bo'lasiz. Buning uchun obyekt konstruktoridan foydalanishni bilgan bo'lishingiz kerak:
Misol
function Person(first, last, age, eyecolor) {
this.firstName = first
this.lastName = last
this.age = age
this.eyeColor = eyecolor
}
const myFather = new Person('John', 'Doe', 50, 'blue')Siz mavjud konstruktorga shunchaki yangi xususiyat qo'shib qo'ya olmaysiz:
Person.nationality = 'Uzbek' // Bu ishlamaydiKonstruktorga yangi xususiyat qo'shish uchun uni funksiyaning o'zida yozishingiz kerak. Lekin bu hamma vaqt ham qulay emas.
"prototype" xususiyatidan foydalanish
JavaScript prototype xususiyati sizga obyekt konstruktorlariga yangi xususiyatlar qo'shish imkonini beradi:
Xususiyat qo'shish
function Person(first, last, age) {
this.firstName = first
this.lastName = last
}
Person.prototype.nationality = 'Uzbek'Shuningdek, prototype yordamida yangi metodlar ham qo'shish mumkin:
Metod qo'shish
Person.prototype.fullName = function () {
return this.firstName + ' ' + this.lastName
}Ogohlantirish
Faqat o'zingiz yaratgan prototiplarni o'zgartiring. Standart JavaScript obyektlarining (masalan, Array, Object, String) prototiplarini hech qachon o'zgartirmang (bu "Prototype Pollution" deb ataladi va xavfli bo'lishi mumkin).
