Skip to content

JavaScript Sinflari (Classes) ​

ECMAScript 2015 (ES6) bilan JavaScript-ga sinflar (Classes) tushunchasi kirib keldi. Sinflar obyektlar yaratish uchun "shablon" (template) vazifasini bajaradi.


JavaScript Sinf Sintaksisi ​

Sinf yaratish uchun class kalit so'zidan foydalaniladi. Har doim constructor() deb nomlangan metodni qo'shish kerak:

Sintaksis ​

js
class SinfNomi {
  constructor() { ... }
}

Misol ​

js
class Car {
  constructor(name, year) {
    this.name = name
    this.year = year
  }
}

Yuqoridagi misolda "Car" deb nomlangan sinf yaratildi. U ikkita boshlang'ich xususiyatga ega: "name" va "year".

Muhim eslatma

JavaScript sinfi obyekt emas. U JavaScript obyektlari uchun shablon hisoblanadi.


Sinfdan foydalanish ​

Sinf yaratib bo'lingach, undan foydalanib yangi obyektlar yaratish mumkin:

Misol ​

js
const myCar1 = new Car('Ford', 2014)
const myCar2 = new Car('Audi', 2019)

Quyidagiga e'tibor bering:

Yangi obyekt yaratilganda constructor metodi avtomatik ravishda chaqiriladi.


Konstruktor metodi (The Constructor Method) ​

Konstruktor — bu maxsus metod bo'lib:

  • U aynan constructor deb nomlanishi shart.
  • Yangi obyekt yaratilganda avtomatik ravishda bajariladi.
  • Obyekt xususiyatlarini boshlang'ich qiymat bilan to'ldirish (init) uchun ishlatiladi.

Agar siz konstruktor metodini yaratmasangiz, JavaScript avtomatik ravishda bo'sh konstruktor qo'shib qo'yadi.


Sinf metodlari (Class Methods) ​

Sinf metodlari obyekt metodlari bilan bir xil sintaksisda yoziladi.

Sintaksis ​

js
class SinfNomi {
  constructor() { ... }
  metod_1() { ... }
  metod_2() { ... }
}

Misol: "Car" sinfiga "age" metodini qo'shish ​

js
class Car {
  constructor(name, year) {
    this.name = name
    this.year = year
  }
  age() {
    const date = new Date()
    return date.getFullYear() - this.year
  }
}

Sinflarda "use strict" ​

Sinflarning sintaksisi har doim "strict mode" qoidalariga muvofiq yozilishi shart.

Strict Mode

Sinf ichida o'zgaruvchini e'lon qilmasdan ishlatish (masalan x = 5) xatoga olib keladi. Bu kod sifatini oshirish va xatolarni kamaytirish uchun xizmat qiladi.