Uvod v razrede in objekte v JavaScript
Zdaj se bomo ukvarjali s preučevanjem OOP v JavaScript. Oglejmo si primer iz življenja, in ga nato prenesimo na JavaScript.
Kot primer vzemimo avtomobil. Ima kolesa, barvo, vrsto karoserije, prostornino motorja in tako naprej. Poleg tega mu lahko voznik ukazuje: pelji, ustavi se, zavij desno, levo itd.
Lahko rečemo, da obstaja neki razred avtomobilov, ki ima skupne lastnosti (vsi imajo kolesa in vsem jim je mogoče ukazati).
Konkreten avtomobil, ki stoji na ulici - je predstavnik tega razreda, ali z drugimi besedami, objekt tega razreda. Vsi objekti tega razreda imajo lastnosti: število koles, barvo, vrsto karoserije in metode: pelji, ustavi se, zavij desno, levo.
Z drugimi besedami, sam razred je načrt, po katerem v tovarni izdelujejo avtomobile. Objekt pa je sam avto, narejen po teh načrtih.
V JavaScript se razred ustvari s ključno
besedo class, ki ji sledi ime
tega razreda. Naredimo razred Car:
class Car {
// tukaj koda, to je JavaScript-načrt avtomobila
}
Določimo zdaj v našem načrtu, da bo vsak avtomobil, ustvarjen po tem načrtu, imel lastnost za barvo in lastnost za količino goriva.
Za to znotraj razreda napišemo lastnost
color in lastnost fuel:
class Car {
color; // barva avtomobila
fuel; // količina goriva
}
Naredimo zdaj metode našega razreda.
V JavaScript so metode podobne običajnim funkcijam,
samo deklarirajo se brez ključne besede function.
Kot že omenjeno, lahko naš avtomobil pelje, zavija, se ustavi. Ustvarimo ustrezne metode v našem razredu:
class Car {
color; // barva avtomobila
fuel; // količina goriva
// Ukaz pelji:
go() {
// nek JavaScript koda
}
// Ukaz zavij:
turn() {
// nek JavaScript koda
}
// Ukaz ustavi se:
stop() {
// nek JavaScript koda
}
}
Naredili smo načrt našega avtomobila. Zdaj je treba iti v tovarno in narediti objekt tega razreda (to je konkretni avtomobil).
V JavaScript se to naredi s ključno besedo
new, za katero je zapisano ime razreda:
new Car; // ukazujemo tovarni, naj naredi avtomobil
Vendar, če preprosto ustvarimo objekt razreda - to ne vodi do ničesar (to je enako, kot če bi na primer deklarirali tabelo in je ne bi shranili nikamor). Potrebujemo spremenljivko za shranjevanje tega objekta.
Naj se ta spremenljivka imenuje myCar
- vanjo zapišimo ustvarjeni objekt:
let myCar = new Car;
Po ustvarjanju avtomobila se je mogoče obračati na njegove lastnosti. Dostop do njih se zgodi s preko pike. Nastavimo lastnosti našega objekta:
let myCar = new Car; // ukazujemo tovarni, naj naredi avtomobil
myCar.color = 'red'; // pobarvamo v rdečo barvo
myCar.fuel = 50; // natankamo gorivo
Vse, naš avtomobil je ustvarjen, pobarvan in natankán. Zdaj mu lahko ukazujemo preko metod tega avtomobila.
Dostop do metod se prav tako zgodi preko pike, toda za razliko od lastnosti, za imenom metode sledijo okrogli oklepaji. Ukazujmo našemu objektu:
myCar.go();
myCar.turn();
myCar.stop();