JavaScript klasslar (class, constructor)

Bitta obyekt yaratish oson. Ammo yuzta bir xil tuzilishdagi obyekt kerak bo’lsa — har birini qo’lda yozish mumkin emas. Klass shu obyektlar uchun shablon beradi.

Muammo: takrorlanadigan obyektlar

const t1 = { ism: "Aziz", ball: 85, holat() { return this.ball >= 60; } };
const t2 = { ism: "Dilnoza", ball: 92, holat() { return this.ball >= 60; } };

Tuzilma bir xil, metod har obyektda qayta yozilgan. Shablon kerak.

Birinchi klass

JavaScript

new nima qiladi

new Talaba("Aziz", 85) uch qadamni bajaradi:

  1. bo’sh obyekt yaratadi;
  2. uni this qilib constructor ni chaqiradi;
  3. shu obyektni qaytaradi.

new ni unutish — keng uchraydigan xato:

JavaScript

Metodlar umumiy saqlanadi

JavaScript

true chiqdi — metod har obyektda nusxalanmaydi, bitta joyda saqlanadi. Xotira tejaladi. Bu mexanizm prototip darsida ochiladi.

Standart qiymat va tekshiruv

JavaScript

Constructor — ma’lumot to’g’riligini tekshirish uchun eng mos joy.

Getter va setter

Xossa kabi ko’rinadigan, lekin funksiya bo’lgan a’zolar:

JavaScript

a.yuza — qavssiz chaqirilyapti, lekin har safar qaytadan hisoblanadi. set esa o’zlashtirishni ushlab, boshqa xossani yangiladi.

Maxfiy xossalar

# bilan boshlangan xossaga tashqaridan tegib bo’lmaydi:

JavaScript

Object.keys maxfiy xossani ko’rsatmadi — #balans faqat klass ichida mavjud. Tashqarida h.#balans deb yozish esa umuman sintaksis xatosi: kod ishga ham tushmaydi.

Bu closure bilan erishilgan yopiqlikning klassdagi rasmiy shakli.

static — klassning o’zida

JavaScript

static a’zolar klassga tegishli, obyektga emas — new shart emas. Ko’pincha yordamchi funksiyalar va sanoqlar uchun ishlatiladi.

Amaliy mashq

  1. Kitob klassini yozing: nom, muallif, yil;
  2. tavsif() metodini qo’shing;
  3. constructor’da yil ni tekshiring — kelajakdagi sana bo’lsa xato bering;
  4. get yoshi getter qo’shing (hozirgi yildan ayirsin);
  5. #nusxalar maxfiy xossasi va uni oshiruvchi metod yozing;
  6. static taqqosla(a, b) bilan ikki kitobni yil bo’yicha solishtiring.

Qisqacha xulosa

  • Klass — obyektlar uchun shablon; new bilan nusxa yaratiladi.
  • constructor boshlang’ich xossalarni o’rnatadi va tekshiruv uchun mos joy.
  • Metodlar barcha nusxalar uchun bitta joyda saqlanadi.
  • get/set xossa ko’rinishidagi funksiyalar beradi.
  • # maxfiy xossa — tashqaridan murojaat qilib bo’lmaydi.
  • static a’zolar klassning o’ziga tegishli.

Keyingi darsda meros — klasslarni kengaytirish.

Bu dars foydali bo'ldimi?

marta ko'rildi