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.