Ievads JavaScript klasēs un objektos
Tagad mēs pievērsīsimies OOP apguvei JavaScript. Apskatīsim piemēru no dzīves, un pēc tam pārnemsim to uz JavaScript.
Kā piemēru ņemsim automašīnu. Tai ir riteņi, krāsa, virsbūves veids, dzinēja tilpums un tā tālāk. Turklāt, vadītājs var tai dot komandas: braukt, apstāties, griezties pa labi, pa kreisi utt.
Var teikt, ka pastāv noteikta klase automašīnu, kurai piemīt kopīgas īpašības (visām ir riteņi un visām var dot komandas).
Konkrēta automašīna, kas stāv ielā - ir šīs klases pārstāvis, vai, citiem vārdiem sakot, objekts no šīs klases. Visiem šīs klases objektiem ir īpašības: riteņu skaits, krāsa, virsbūves veids un metodes: braukt, apstāties, griezties pa labi, pa kreisi.
Citiem vārdiem, pati klase - ir rasējums, pēc kura rūpnīcā tiek izgatavotas automašīnas. Objekts savukārt - ir pati mašīna, kas izgatavota pēc šiem rasējumiem.
JavaScript klase tiek izveidota, izmantojot atslēgvārdu
class, pēc kura seko šīs klases nosaukums.
Izveidosim klasi Car:
class Car {
// šeit kods, tas ir, JavaScript-rasējums automašīnai
}
Norādīsim tagad mūsu rasējumā, ka jebkura automašīna, kas izveidota pēc šī rasējuma, būs ar īpašību krāsai un īpašību degvielas daudzumam.
Lai to izdarītu, klases iekšpusē rakstām īpašību
color un īpašību fuel:
class Car {
color; // automašīnas krāsa
fuel; // degvielas daudzums
}
Tagad izveidosim mūsu klases metodes.
JavaScript metodēs ir līdzīgas parastajām funkcijām,
tikai tās tiek deklarētas bez atslēgvārda function.
Kā jau minēts iepriekš, mūsu automašīna var braukt, var griezties, var apstāties. Izveidosim atbilstošās metodes mūsu klasē:
class Car {
color; // automašīnas krāsa
fuel; // degvielas daudzums
// Komanda braukt:
go() {
// kāds JavaScript kods
}
// Komanda griezties:
turn() {
// kāds JavaScript kods
}
// Komanda apstāties:
stop() {
// kāds JavaScript kods
}
}
Mēs esam izveidojuši mūsu automašīnas rasējumu. Tagad jādodas uz rūpnīcu un jāizveido šīs klases objekts (tas ir, konkrēta automašīna).
JavaScript tas tiek darīts, izmantojot atslēgvārdu
new, pēc kura raksta klases nosaukums:
new Car; // pavēlam rūpnīcai izgatavot automašīnu
Tomēr, ja vienkārši izveidot klases objektu - tas neko neizdosies (tas ir tas pats, ka, piemēram, deklarēt masīvu un nekur to neierakstīt). Mums vajag mainīgo, lai glabātu šo objektu.
Lai šis mainīgais saucas myCar
- ierakstīsim tajā mūsu izveidoto objektu:
let myCar = new Car;
Pēc automašīnas izveides var piekļūt tās īpašībām. Pieķūšana tām notiek caur punktu. Iestatīsim mūsu objekta īpašības:
let myCar = new Car; // pavēlam rūpnīcai izgatavot automašīnu
myCar.color = 'red'; // krāsojam sarkanā krāsā
myCar.fuel = 50; // ieliet degvielu
Viss, mūsu automašīna ir izveidota, nokrāsota un uzpildīta. Tagad mēs varam tai dot komandas, izmantojot šīs automašīnas metodes.
Pieķūšana metodēm arī notiek caur punktu, bet, atšķirībā no īpašībām, pēc metodes nosaukuma seko rakstīt apaļās iekavas. Pakomandēsim mūsu objektu:
myCar.go();
myCar.turn();
myCar.stop();