Skip to content

JavaScript Obyekt Prototiplari ​

JavaScript-da barcha obyektlar o'z prototipidan xususiyatlar va metodlarni meros qilib oladi.


Prototip orqali merosxo'rlik

  • Date obyektlari Date.prototype-dan meros oladi.
  • Array obyektlari Array.prototype-dan meros oladi.
  • Object.prototype barcha 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 ​

js
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:

js
Person.nationality = 'Uzbek' // Bu ishlamaydi

Konstruktorga 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 ​

js
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 ​

js
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).