Sodoben JavaScript z ES6–ES13 (JS-vodič)

Dedovanje v JavaScriptu: Z ES6 do modernih razredov

Vsi videoposnetki vadnice Sodoben JavaScript z ES6-ES13 (JS-vodnik)

Dedovanje je osrednji koncept v objektno usmerjenem programiranju, ki ti omogoča, da razširiš obstoječe razrede in uporabljaš njihove lastnosti ter metode. JavaScript je z uvedbo ES6 prinesel novejšo in robustnejšo sintakso dedovanja, ki je veliko lažja za uporabo kot prvotne metode prototipov. V tem priročniku ti bom pokazal, kako uporabiš dedovanje v JavaScriptu s pomočjo ključno besedo extends, in ti korak za korakom razložil, kako pravilno poklicati konstruktor osnovnega razreda s super.

Najpomembnejši vpogledi

  • Dedovanje v JavaScriptu poteka preko ključno besede extends.
  • Konstruktor osnovnega razreda mora biti poklican s super.
  • Instančne spremenljivke lahko v dedovanem razredu sklicuješ preko ključno besede this.

Navodila korak za korakom

Ustvarjanje osnovnega razreda

Da začnemo z dedovanjem, najprej ustvarimo osnovni razred z imenom Shape. V tem razredu bomo definirali konstruktor ter nekaj metod.

Tukaj definiraš razred Shape, ki ima konstruktor. V tem konstruktorju lahko definiraš spremenljivke in funkcije, do katerih lahko dostopajo drugi razredi.

Dedovanje v JavaScriptu: Z ES6 do modernih razredov

Razorazred

Po ustvarjanju osnovnega razreda lahko zdaj ustvariš podrazred, ki deduje od Shape. V tem primeru bomo novemu razredu dali ime ConcreteShape.

V tem podrazredu uporabljamo ključno besedo extends, da označimo, da ConcreteShape deduje od Shape. Konstruktor podrazreda pokliče konstruktor osnovnega razreda Shape s super(), kar je potrebno za pravilno implementacijo dedovanja.

Instanciranje podrazreda

Zdaj, ko smo ustvarili podrazred, je čas, da ustvarimo instanco tega razreda.

Tukaj ustvariš nov objekt myShape razreda ConcreteShape in predajaš opis konstruktorju. Nato pokličeš metodo print, ki izpiše opis.

Dodajanje dodatnih lastnosti

Lahko dodaš dodatne lastnosti svojemu podrazredu ali celo metode, ki so specifične za ta podrazred.

Tukaj si razred ConcreteShape razširil z dodajanjem dodatnih parametrov konstruktorju.

Uporaba dedovanja

S s pomočjo ključno besede super lahko pokličeš metodo describe osnovnega razreda, da združiš lastnosti osnovnega razreda in podrazreda.

Zaključek – Dedovanje v JavaScriptu: Od ES6 do ES13

V tem učnem gradivu si se naučil, kako deluje dedovanje v JavaScriptu, zlasti z novo sintakso class. Videli smo, kako definiraš razrede, kako deduješ od osnovnega razreda in kako pravilno poklicati konstruktor. Ti mehanizmi ti olajšajo ohranjanje tvoje kode čiste in vzdržljive, saj učinkovito ponovno uporabljaš funkcionalnosti.

Pogosta vprašanja

Kakšna je razlika med super() in this?super() se uporablja za klic konstruktorja osnovnega razreda, medtem ko this dostopa do instance trenutnega razreda.

Zakaj je uporaba Es6 razredov boljša kot prototipi?ES6 razredi ponujajo jasnejšo in bolj intuitivno sintakso, kar olajša branje in razumevanje kode.

Ali lahko imam več osnovnih razredov?Ne, JavaScript ne podpira večkratnega dedovanja. Razred lahko deduje le od enega drugega razreda.

Kaj se zgodi, če ne pokličem super()?Če ne pokličeš super(), dobiš napako, saj konstruktor osnovnega razreda, ki inicializira, kar je potrebno za razred, ne bo izveden.