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
class SinfNomi {
constructor() { ... }
}Misol
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
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
constructordeb 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
class SinfNomi {
constructor() { ... }
metod_1() { ... }
metod_2() { ... }
}Misol: "Car" sinfiga "age" metodini qo'shish
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.
