Javascript Object haqida tushuncha

Kirish

Javascript da deyarli hamma narsa Object hisoblanadi. Ushbu maqolada Javascript Object qanday yasalishi, o'zgarishi va uning xususiyatlari haqida bilganlarimni bo'lishishga harakat qilaman.

Object o'zi nima?

Object kalit va qiymat (key-value) juftligidan tashkil topgan to'plamdir. Kalitning qiymati oddiygina string, raqam, boolean, boshqa object va xatto funksiya ham bo'lishi mumkin.

// Qiymati string bo'lgan Object
const name = 'Umar';

// Qiymati raqam bo'lgan Object
let number = 12;

// Qiymati boolean bo'lgan Object
let isCorrect = true;

// Qiymati boshqa Object bo'lgan Object
const car = {
    make: 'Tesla',
    model: 'Model X',
    year: 2020
}

// Qiymati funksiya bo'lgan object
const greeting = function(){
   return 'Assalamu alaykum!'
}

Object ni Yasash

Javascriptda Object yasashning bir necha usullari mavjud. Har birini misollar bilan ko'rib chiqamiz.

Object Literal Usuli

Objectni noldan yasashning eng oddiy usullaridan biri bu Object Literal usuli. Yuqoridagi 'CAR' misolida ko`rishimiz mumkin. Endi esa 'Kitob' misolida ham namuna keltirib o'tamiz.

   const book = {
       name: 'Atomic Habits',
       author: 'James Clear',
       year: 2018
   }

Object qiymatlari qiyshiq qavs ichiga yoziladi, va objectning xususiyatlari (property) hisoblanadi.

new kalit so'zi orqali

new kalit so'zini ishlatib, avval Object yasab olinadi, qiymati esa keyinroq belgilanadi. Masalan:

 const book = new Object();
 book.name = 'Atomic Habits';
 book.author = 'James Clear';
 book.year = 2018;

 console.log(book);

Constructor orqali

Constructorlar Object yasash jarayonida ishga tushadigan kod qismidir. Object yasash jarayonida funksiyaga ixtiyoriy parametrlarni bersangiz bo'ladi. Umumiy qilib aytganda, zamovaniy OOP (object-oriented programming) da, constructor lar class funksiyasini ichida yasaladi (kelasi maqolalarda batafsil yoritamiz).

 const Movie = function(title, director, genre, rating) {
    this.title = title;
    this.director = director;
    this.genre = genre;
    this.rating = rating;
    this.getDetails = function() {
        console.log(`${this.title} of the genre ${this.genre} has a rating of ${this.rating}. It is 
        directed by ${this.director}.`);
    }
 } 

 const avengers = new Movie('Avengers: Endgame', 'Joss Whedon', 'Action/Sci-fi', 8.4 );
 const guardians = new Movie ('Guardians of the Galaxy', 'James Gunn', 'Action/Sci-fi', 8);

console.log(avengers); 
console.log(guardians.getDetails());

Constructor funksiyani nomini katta harf bilan boshlash zarur.

Ushbu Constructor usuli haqiqiy proyektlarda ko'proq qo'llaniladigan usuldir, chunki new kalit so'zi orqali constructor dan istalgancha object yasash, ularga keyinroq yangi key-value larni qo'shish yoki o`zgartirish mumkin, va bu constructor usuli bilan juda oson.

Object kalitlari bilan ishlash

Object ga biriktirilgan kalitning qiymatlarini 2 usul bilan olish mumkin.

a. Nuqta '.' operatori orqali

 const book = {
  name: 'Atomic Habits',
  author: 'James Clear',
  year: 2018,
}

 console.log(book.name); // natija: Atomic Habits

b. Kvadrat qavslar '[]' orqali

const book = {
  name: 'Atomic Habits',
  author: 'James Clear',
  year: 2018,
}

console.log(book["author"]; // natija: Atomic Habits

'a' variant, ya`ni nuqta operatori soddaligi uchun ko'proq urfga kirgan.

Ushbu maqola Skay Blog blogidan, muallifning ruxsati bilan tarjima qilindi!