JS sinflar
ES6 nomi bilan ham tanilgan ECMAScript 2015 JavaScript sinflarini taqdim etdi.
JavaScript sinflari JavaScript Objectlar uchun shablondir.
JavaScript sinfi sintaksisi
Sinf yaratish uchun class kalit so‘zidan foydalaning.
Always add a method named constructor():
Sintaksis
class ClassName {
constructor() { ... }
}
Misol
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
Yuqoridagi misol "Avtomobil" nomli sinfni yaratadi.
Sinf ikkita dastlabki xususiyatga ega: "nom" va "yil".
JavaScript klassi obyekt emas.
Bu JavaScript Objectlar uchun shablondir.
Sinfdan foydalanish
Agar sizda sinf mavjud bo‘lsa, siz obyektlarni yaratish uchun sinfdan foydalanishingiz mumkin:
Misol
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
Yuqoridagi misolda ikkita Car obyektini yaratish uchun Car sinfidan foydalaniladi.
Yangi obyekt yaratilganda konstruktor usuli avtomatik ravishda chaqiriladi.
Konstruktor usuli
Konstruktor usuli maxsus usuldir:
- Uning aniq nomi "konstruktor" bo‘lishi kerak
- Yangi obyekt yaratilganda u avtomatik ravishda bajariladi
- U obyekt xususiyatlarini ishga tushirish uchun ishlatiladi
Agar siz konstruktor usulini aniqlamasangiz, JavaScript bo‘sh konstruktor usulini qo‘shadi.
Sinf usullari
Sinf usullari obyekt usullari bilan bir xil sintaksis bilan yaratilgan.
Sinf yaratish uchun class kalit so‘zidan foydalaning.
Always add a constructor() method.
Keyin istalgan sonli usullarni qo‘shing.
Sintaksis
class ClassName {
constructor() { ... }
method_1() { ... }
method_2() { ... }
method_3() { ... }
}
Avtomobil yoshini qaytaradigan "yosh" nomli sinf usulini yarating:
Misol
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
Parametrlarni Class usullariga yuborishingiz mumkin:
Misol
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new
Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is
" + myCar.age(year) + " years old.";
"qat’iy foydalaning"
Klass sintaksisi qat’iy rejimda ("strict mode") yozilishi shart.
Agar siz "qat’iy rejim" qoidalariga rioya qilmasangiz, xatoga duch kelasiz.
Misol
Agar siz o‘zgaruvchini e’lon qilmasdan foydalansangiz, "qat’iy rejimda" siz xatoga duch kelasiz:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // This will not work
const date = new Date(); // This will work
return date.getFullYear() - this.year;
}
}
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
