Klase u JavaScriptu su osnovna karakteristika jezika i koriste se za kreiranje objekata i definisanje njihovih svojstava i metoda, takozvana enkapsulacija. Drugim riječima pravimo kalup na osnovu koga ćemo kreirati objekte. Slične su klasama u drugim objektno-orijentisanim jezicima.
Primjer:
U ovom primjeru, kreirana je klasa “Automobil” sa konstruktorom koji prima tri parametra: marku, model i godinu proizvodnje. Konstruktor koristi “this” keyword da bi se definisala svojstva objekta. Klasa takodje sadrži metodu “info” koja ispisuje vrijednosti svojstava objekta u konzoli.
Nakon kreiranja klase, kreira se novi objekat klase “Automobil” i prosleđuju se vrijednosti marka, model i godina proizvodnje u konstruktor. Nakon toga, poziva se metoda “info” na kreiranom objektu da bi se ispisale informacije o automobilu.
Klase u JavaScriptu takođe podržavaju nasleđivanje, što omogućava kreiranje izvedenih klasa koje nasleđuju svojstva i metode roditeljske klase. Takođe podržavaju i statičke metode i svojstva.
Ovo je samo osnovni primer korišćenja klasa u JavaScriptu, postoji mnogo drugih mogućnosti i koncepta koji se mogu koristiti u kombinaciji sa klasama, što omogućava izradu kompleksnih i fleksibilnih aplikacija.
Klase u JavaScriptu omogućavaju programerima da strukturiraju svoj kod na način koji odražava stvarni svijet. One olakšavaju organizaciju i održavanje koda, omogućavajući jasnu hijerarhiju objekata i funkcionalnosti.
U JavaScriptu, nasleđivanje se postiže korišćenjem ključne reči extends
. Na primer, ako želimo kreirati novu klasu “SportskiAutomobil” koja nasleđuje osobine klase “Automobil”, to bismo mogli učiniti na sledeći način:
class SportskiAutomobil extends Automobil {
constructor(marka, model, godinaProizvodnje, brzina) {
super(marka, model, godinaProizvodnje); this.brzina = brzina; } ubrzaj() { console.log(`Sportski automobil ${this.marka} ${this.model} ubrzava na ${this.brzina} km/h!`); } }
Sada možemo kreirati novi sportski automobil i koristiti i osobine roditeljske klase “Automobil” i nove osobine “SportskiAutomobil”:
const sportskiAuto = new SportskiAutomobil("Ferrari", "488 GTB", 2023, 300); sportskiAuto.info(); // Pozivamo metodu roditeljske klase sportskiAuto.ubrzaj(); // Pozivamo novu metodu sportskog automobila
Ovaj primer ilustruje kako se klasa “SportskiAutomobil” proširuje na osnovu klase “Automobil” i dodaje svoje specifične osobine i metode.
Ovo je samo jedan od mnogih načina kako se klase mogu koristiti u JavaScriptu. Imajte na umu da se “ECMAScript” standardi stalno razvijaju, pa je preporučljivo pratiti najnovije informacije o jeziku. U budućnosti, možemo očekivati dodatne poboljšanja i novitete u vezi sa klasama i objektno-orijentisanim programiranjem u JavaScriptu.