Įvadas į klases ir objektus JavaScript

Dabar mes imsimės studijuoti OOP JavaScript. Pažvelkime į pavyzdį iš realaus gyvenimo, o vėliau perkelsime jį į JavaScript.

Kaip pavyzdį paimkime automobilį. Jis turi ratus, spalvą, kėbulo tipą, variklio darbinį tūrį ir taip toliau. Be to, vairuotojas gali duoti jam komandas: važiuoti, sustoti, pasukti į dešinę, į kairę ir pan.

Galima sakyti, kad egzistuoja tam tikras klasis automobilių, turintis bendrų savybių (visi turi ratus ir visiems jiems galima duoti komandas).

Konkretus automobilis, stovintis gatvėje - yra šio klasio atstovas, arba, kitais žodžiais tariant, objektas šio klasio. Visi šio klasio objektai turi savybes: ratų skaičių, spalvą, kėbulo tipą ir metodus: važiuoti, sustoti, pasukti į dešinę, į kairę.

Kitaip tariant, pats klasis - tai brėžinys, pagal kurį gamykloje gaminami automobiliai. Objektas gi - tai pati mašina, pagaminta pagal šiuos brėžinius.

JavaScript klasis sukuriamas naudojant raktinį žodį class, po kurio seka šio klasio pavadinimas. Sukurkime klasį Car:

javascriptclass Car {
  // čia kodas, tai yra JavaScript brėžinys automobilio
}

Nurodykime dabar mūsų brėžinyje, kad bet kuris automobilis, sukurtas pagal šį brėžinį, turės savybę spalvai ir savybę kuro kiekiui.

Norėdami tai padaryti, klasio viduje parašykime savybę color ir savybę fuel:

javascriptclass Car {
  color; // automobilio spalva
  fuel;  // kuro kiekis
}

Dabar sukurkime mūsų klasio metodus. JavaScript metodai yra panašūs į įprastas funkcijas, tik deklaruojami be raktinio žodžio function.

Kaip jau minėta anksčiau, mūsų automobilis gali važiuoti, gali pasisukti, gali sustoti. Sukurkime atitinkamus metodus mūsų klasyje:

javascriptclass Car {
  color; // automobilio spalva
  fuel;  // kuro kiekis
  
  // Komanda važiuoti:
  go() {
    // kažkoks JavaScript kodas
  }
  
  // Komanda pasisukti:
  turn() {
    // kažkoks JavaScript kodas
  }
  
  // Komanda sustoti:
  stop() {
    // kažkoks JavaScript kodas
  }
}

Mes sukūrėme savo automobilio brėžinį. Dabar reikia nuvykti į gamyklą ir pagaminti šio klasio objektą (tai yra konkretų automobilį).

JavaScript tai daroma naudojant raktinį žodį new, po kurio rašomas klasio pavadinimas:

javascriptnew Car; // įsakome gamyklai pagaminti automobilį

Tačiau, jei tiesiog sukursite klasio objektą - tai nieko nebus (tai tas pats, kaip, pavyzdžiui, deklaruoti masyvą ir niekur jį neįrašyti). Mums reikia kintamojo, skirtame šiam objektui saugoti.

Tegul šis kintamasis vadinasi myCar - į jį įrašykime mūsų sukurtą objektą:

javascriptlet myCar = new Car;

Sukūrus automobilį, galima kreiptis į jo savybes. Kreipimasis į jas atliekamas per tašką. Nustatykime mūsų objekto savybes:

javascriptlet myCar = new Car; // įsakome gamyklai pagaminti automobilį

myCar.color = 'red'; // dažome raudonai
myCar.fuel = 50;     // pilame kurą

Viskas, mūsų automobilis sukurtas, nudažytas ir pripiltas kuro. Dabar mes galime duoti jam komandas per šio automobilio metodus.

Kreipimasis į metodus taip pat atliekamas per tašką, tačiau, skirtingai nei su savybe, po metodo pavadinimo reikia rašyti skliaustelius. Duokime komandas mūsų objektui:

javascriptmyCar.go();
myCar.turn();
myCar.stop();