JavaScriptтеги класстар жана объектилерге киришүү
Азыр биз JavaScriptтеги ООПди үйрөнөбүз. Келгиле, жашоодон мисалды карап көрөлү, андан кийин аны JavaScriptке көчүрөлү.
Мисал катары машинаны алалы. Анын дөңгөлөктөрү, түсү, кузовунун түрү, кыймылдаткычтын көлөмү жана башкалар бар. Мындан тышкары, айдоочу ага буйрук бере алат: жүрүү, токтоо, оңго бурулуу, солго бурулуу ж.б.
Машиналардын бир классы бар деп айтууга болот, алар жалпы касиеттерге ээ (бардыгында дөңгөлөк бар жана бардыгына буйрук берсе болот).
Көчөдө турган конкреттүү машина - бул ушул класстын өкүлү, же, башкача айтканда, ушул класстын объектиси. Бул класстын бардык объектилеринде касиеттери: дөңгөлөктүн саны, түсү, кузовунун түрү жана методдору: жүрүү, токтоо, оңго бурулуу, солго бурулуу бар.
Башкача айтканда, класс өзү - бул заводдо машиналар жасалуучу чертеж. Объект эсе - бул ошол чертеж боюнча жасалган машина өзү.
JavaScriptте класс түзүлөт class ачкыч сөзү
жардамы менен, андан кийин бул класстын аталышы
жазылат. Келгиле, Car классын түзөлү:
class Car {
// бул жерде код, башкача айтканда JavaScript-чертеж машины
}
Эми биздин чертежибизде, бул чертеж боюнча жасалган ар кандай машинада түс үчүн касиет жана отундун саны үчүн касиет болот деп көрсөтөлү.
Бул үчүн класстын ичинде color касиети
жана fuel касиетин жазабыз:
class Car {
color; // машинанын түсү
fuel; // отундун саны
}
Эми биздин класстын методдорун түзөлү.
JavaScriptте методдор кадимки функцияларга окшош,
бирок гана function ачкыч сөзүсүз жарыяланат.
Жогоруда айтылгандай, биздин машинабыз жүрө алат, бурула алат, токтосо алат. Биздин класста тиешелүү методдорду түзөлү:
class Car {
color; // машинанын түсү
fuel; // отундун саны
// Жүрүү буйругу:
go() {
// бир аз JavaScript коду
}
// Бурулуу буйругу:
turn() {
// бир аз JavaScript коду
}
// Токтоо буйругу:
stop() {
// бир аз JavaScript коду
}
}
Биз сиздер менен биздин машинанын чертежин жасадык. Эми завода барып, ушул класстын объектин (башкача айтканда конкреттүү машинаны) түзүш керек.
JavaScriptте бул new ачкыч сөзү
жардамы менен жасалат, андан кийин класстын аталышы жазылат:
new Car; // машина жаса деп заводго буйрук беребиз
Бирок, эгерде жөн гана класстын объектин түзсөк - бул эч нерсеге алып келбейт (бул, мисалы, массивди жарыялап, аны эч жерге жазбаганга окшош). Бизге бул объектини сактоо үчүн өзгөрмө керек.
Бул өзгөрмөнүн аталышы myCar болсун
- ага түзгөн объектибизди жазабыз:
let myCar = new Car;
Машина түзүлгөндөн кийин анын касиеттерине кайрылууга болот. Аларга кайрылуу чекит аркылуу жүрөт. Келгиле, биздин объектибиздин касиеттерин белгилейли:
let myCar = new Car; // машина жаса деп заводго буйрук беребиз
myCar.color = 'red'; // кызыл түскө боёйбуз
myCar.fuel = 50; // отун куюйбуз
Баары, биздин машинабыз түзүлдү, боёлду жана отун менен толтурулду. Эми биз ага бул машинанын методдору аркылуу буйрук бере алабыз.
Методдорго кайрылуу дагы чекит аркылуу жүрөт, бирок, касиеттен айырмаланып, методдун аталышынан кийин тегерек кашаа жазылат. Келгиле, биздин объектибизге буйрук берели:
myCar.go();
myCar.turn();
myCar.stop();