JS sinflar

ES6 nomi bilan ham tanilgan ECMAScript 2015 JavaScript sinflarini taqdim etdi.

JavaScript sinflari JavaScript Objectlar uchun shablondir.

ULASHISH

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);

O‘zingiz sinab ko‘ring »

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.";

O‘zingiz sinab ko‘ring »

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.";

O‘zingiz sinab ko‘ring »


"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!