JavaScript Obyekt Ta'riflari
JavaScript-da obyektlarni yaratish va aniqlashning bir necha xil usullari mavjud.
Obyektlarni aniqlash usullari
- Obyekt literali yordamida
newkalit so'zi yordamida- Obyekt konstruktori orqali
Object.assign()yordamidaObject.create()yordamidaObject.fromEntries()yordamida
Obyekt literali (Object Literal) yordamida
Obyekt literali — bu jingalak qavslar { } ichida yozilgan xususiyatlar (property) key:value juftliklari ro'yxatidir.
Misol
// Obyekt yaratish
const person = {
firstName: 'John',
lastName: 'Doe',
age: 50,
eyeColor: 'blue'
}"new" kalit so'zi yordamida
Siz JavaScript-ning o'rnatilgan Object() konstruktori orqali ham obyekt yaratishingiz mumkin.
Misol
// Obyekt yaratish
const person = new Object({
firstName: 'John',
lastName: 'Doe',
age: 50,
eyeColor: 'blue'
})Eslatma:
Yuqoridagi ikkala misol ham bir xil natija beradi. Lekin new Object() dan foydalanishga ehtiyoj yo'q. O'qishga qulaylik, soddalik va bajarilish tezligi uchun obyekt literali usulidan foydalaning.
Object.create() metodi
Object.create() metodi mavjud obyektni prototip sifatida ishlatib, yangi obyekt yaratadi.
Misol
// Asosiy obyekt:
const person = {
firstName: 'John',
lastName: 'Doe'
}
// Yangi obyekt yaratish
const man = Object.create(person)
man.firstName = 'Peter'Object.fromEntries() metodi
Object.fromEntries() metodi kalit/qiymat juftliklaridan iborat massivni (yoki boshqa iterable-ni) obyektga aylantiradi.
Misol
const fruits = [
['apples', 300],
['pears', 900],
['bananas', 500]
]
const myObj = Object.fromEntries(fruits)
// Natija: {apples: 300, pears: 900, bananas: 500}Object.assign() metodi
Object.assign() metodi bir yoki bir nechta manba obyektlaridan xususiyatlarni nishon (target) obyektga nusxalaydi.
Misol
const person1 = {
firstName: 'John',
lastName: 'Doe'
}
const person2 = { age: 30, city: 'New York' }
Object.assign(person1, person2) // person1-ga person2 xususiyatlari qo'shiladiJavaScript-da Obyektlar — "Qirol"
Agar siz obyektlarni tushunsangiz, siz JavaScript-ni tushunasiz.
JavaScript-da deyarli "hamma narsa" obyektdir:
- Funksiyalar — obyektlar
- Massivlar — obyektlar
- Sanalar (Dates) — obyektlar
- Matematika (Math) — obyektlar
- Map va Set — obyektlar
Faqatgina primitivlar (string, number, boolean, null, undefined, symbol, bigint) obyekt hisoblanmaydi.
Obyektlarning o'zgaruvchanligi (Mutability)
Obyektlar mutable (o'zgaruvchan) hisoblanadi: ular qiymat bo'yicha emas, havola (reference) bo'yicha murojaat qilinadi.
Agar person obyekt bo'lsa, quyidagi kod uning nusxasini yaratmaydi:
const x = personx o'zgaruvchisi person-ning nusxasi emas, balki uning o'zidir. Ikkalasi ham xotiradagi bir xil manzilga ishora qiladi. x-da qilingan har qanday o'zgarish person-ga ham ta'sir qiladi.
Misol
const person = { firstName: 'Ali', age: 25 }
const x = person // Havola yuborildi
x.age = 10 // Bu person.age-ni ham 10 ga o'zgartiradi