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