Razredi so predloge za ustvarjanje objektov. Podatke združijo s kodo, ki na teh podatkih deluje. Razredi v JavaScriptu temeljijo na prototipih, vendar uvajajo lastno sintakso in semantiko. Tako kot funkcije lahko razrede definiramo na dva načina: z izrazom razreda ali z deklaracijo razreda. Izrazi razreda so lahko anonimni ali poimenovani (drugače kot spremenljivka, ki jim je dodeljena). Za razliko od deklaracij funkcij imajo deklaracije razredov enake omejitve “mrtve cone” kot spremenljivke, deklarirane z let ali const, zato se ne “dvignejo”.
Razred je posebna vrsta funkcije, a namesto ključne besede function uporabimo ključno besedo class. Lastnosti običajno inicializiramo znotraj metode constructor().
class ImeRazreda {
constructor() { /* ... */ }
}
class Oseba {
constructor(ime, priimek) {
this.ime = ime;
this.priimek = priimek;
}
}
Zgornji primer ustvari razred z imenom ImeRazreda/Oseba, ki
ima začetne lastnosti ime in priimek. Razred (ang. Class) ni objekt — je predloga za
JavaScript objekte. Ključne točke: razred definiraš s class, začetno
stanje v constructor(), dedovanje z extends in klic nad-razreda s super().
Statične metode (static) kličeš na razredu, ne na instanci.
Interaktivni primer prikazuje: (1) ustvarjanje instance razreda Oseba, (2) podrazred
Uporabnik, ki deduje iz Oseba in kliče super(), (3) klic dedovanih metod, npr. polnoIme(), ter
(4) statično metodo izEmaila(), ki iz e‑poštnega naslova ustvari uporabnika. Z gumbi lahko: ustvariš
instanco, pokličeš metode, pregledaš JSON stanja in po nastaviš primer. Namen vaje je jasno ločiti lastnosti instance,
metode razreda in statične metode.
| Razred | Razredi so predloge za ustvarjanje objektov. | Glej primer |
|---|---|---|
| Uporaba razreda | Ko imamo razred, ga uporabimo za ustvarjanje instanc (objektov) z new. | Glej primer |
| constructor | Inicializira začetno stanje/lastnosti nove instance. | Glej primer |
| extends | Ustvari podrazred, ki deduje lastnosti in metode nad-razreda. | Glej primer |
| static | Definira metode na razredu (klic: ImeRazreda.metoda()), ne na instanci. | Glej primer |
| super() | Kliče konstruktor ali metode nad-razreda znotraj podrazreda. | Glej primer |
Hvala za obisk! Dodajam politiko zasebnosti.
© 2024 Vse pravice pridržane.
Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.