JavaScript-da klasslar va ob'ektlarga kirish
Hozir biz JavaScript-da OOP ni o'rganish bilan shug'ullanamiz. Keling, hayotdan misolni ko'rib chiqaylik, so'ngra uni JavaScript-ga o'tkazamiz.
Misol sifatida avtomobilni olaylik. Unda g'ildiraklar, rang, kuzov turi, dvigatel hajmi va hokazo bor. Bundan tashqari, haydovchi unga buyruq bera oladi: yurish, to'xtash, o'ngga burilish, chapga burilish va hokazo.
Avtomobillarning ma'lum bir klass mavjud deyish mumkin, ular umumiy xususiyatlarga ega (hammaning g'ildiragi bor va ularning barchasiga buyruq berish mumkin).
Ko'chada turgan aniq bir avtomobil - ushbu klassning vakili, yoki boshqacha qilib aytganda, shu klassning ob'ekti. Ushbu klassning barcha ob'ektlarida xususiyatlar: g'ildiraklar soni, rang, kuzov turi va metodlar: yurish, to'xtash, o'ngga burilish, chapga burilish mavjud.
Boshqacha qilib aytganda, klassning o'zi - bu zavodda avtomobillar ishlab chiqariladigan chizma. Ob'ekt esa - o'sha chizmalar asosida qilingan mashinaning o'zi.
JavaScript-da klass class kalit so'zi yordamida yaratiladi,
undan keyin esa shu klassning nomi keladi.
Keling, Car klassini yarataylik:
class Car {
// bu yerda kod, ya'ni JavaScript-dagi avtomobil chizmasi
}
Endi o'zimizning chizmamizda ko'rsatamizki, ushbu chizma asosida yaratilgan har qanday avtomobil rang xususiyatiga va yoqilg'i miqdori xususiyatiga ega bo'ladi.
Buning uchun klass ichida color xususiyatini
va fuel xususiyatini yozamiz:
class Car {
color; // avtomobilning rangi
fuel; // yoqilg'i miqdori
}
Keling, endi klassimizning metodlarini yarataylik.
JavaScript-da metodlar oddiy funksiyalarga o'xshaydi,
faqat ular function kalit so'zisiz e'lon qilinadi.
Yuqorida aytib o'tilganidek, bizning avtomobilimiz yura oladi, burila oladi, to'xtata oladi. Keling, klassimizda mos keladigan metodlarni yarataylik:
class Car {
color; // avtomobilning rangi
fuel; // yoqilg'i miqdori
// Yurish buyrug'i:
go() {
// ma'lum bir JavaScript kodi
}
// Burilish buyrug'i:
turn() {
// ma'lum bir JavaScript kodi
}
// To'xtash buyrug'i:
stop() {
// ma'lum bir JavaScript kodi
}
}
Biz o'zimizning avtomobilimizning chizmasini yasadik. Endi zavodga borib, shu klassning ob'ektini (ya'ni aniq bir avtomobilni) yaratish kerak.
JavaScript-da bu new kalit so'zi yordamida amalga oshiriladi,
undan keyin klass nomi yoziladi:
new Car; // zavodga avtomobil yasashni buyuramiz
Biroq, agar shunchaki klass ob'ektini yaratish - hech narsaga olib kelmaydi (bu xuddi, masalan, massiv e'lon qilib, uni hech qayerga yozmaslikka o'xshaydi). Bizga ushbu ob'ektni saqlash uchun o'zgaruvchi kerak.
Bu o'zgaruvchi myCar deb nomlansin -
unga yaratgan ob'ektimizni yozamiz:
let myCar = new Car;
Avtomobil yaratilgandan so'ng, uning xususiyatlariga murojaat qilish mumkin. Ularga nuqta orqali murojaat qilinadi. Keling, ob'ektimizning xususiyatlarini o'rnatamiz:
let myCar = new Car; // zavodga avtomobil yasashni buyuramiz
myCar.color = 'qizil'; // qizil rangga bo'yaymiz
myCar.fuel = 50; // yoqilg'ini to'ldiramiz
Hammasi, avtomobilimiz yaratildi, bo'yaldi va yoqilg'i quyildi. Endi biz unga ushbu avtomobil metodlari orqali buyruq bera olamiz.
Metodlarga murojaat qilish ham nuqta orqali amalga oshiriladi, lekin xususiyatdan farqli o'laroq, metod nomidan keyin yumaloq qavslar qo'yiladi. Keling, ob'ektimizga buyruq beraylik:
myCar.go();
myCar.turn();
myCar.stop();