Dedičnosť je centrálne koncept v objektovo orientovanom programovaní, ktorý ti umožňuje rozšíriť existujúce triedy a využiť ich vlastnosti a metódy. JavaScript s príchodom ES6 predstavil novšiu a robustnejšiu syntax dedičnosti, ktorá je oveľa jednoduchšia na manipuláciu než pôvodné metódy prototypu. V tomto sprievodcovi ti ukážem, ako využiť dedičnosť v JavaScripte pomocou kľúčového slova extends, a krok za krokom ti vysvetlím, ako správne zavolať konštruktor základnej triedy pomocou super.
Hlavné poznatky
- Dedičnosť v JavaScripte prebieha pomocou kľúčového slova extends.
- Konštruktor základnej triedy musí byť volaný pomocou super.
- Inštančné premenné môžu byť referencované pomocou kľúčového slova this v odvodených triedach.
Krok za krokom návod
Vytvorenie základnej triedy
Aby sme začali s dedičnosťou, najprv vytvoríme základnú triedu s názvom Shape. V tejto triede definujeme konštruktor a niekoľko metód.
Tu definuješ triedu Shape, ktorá má konštruktor. Môžeš v tomto konštruktore definovať premenné a funkcie, na ktoré môžu mať prístup iné triedy.

Preskúmanie subtriedy
Po vytvorení základnej triedy môžeš teraz vytvoriť subtriedu, ktorá dedí od Shape. V tomto príklade nazveme novú triedu ConcreteShape.
V tejto subtriede používame kľúčové slovo extends, aby sme určili, že ConcreteShape dedí od Shape. Konštruktor subtriedy volá konštruktor základnej triedy Shape pomocou super(), čo je nevyhnutné, aby sa dedičnosť správne implementovala.
Inštancovanie subtriedy
Teraz, keď sme vytvorili subtriedu, je čas vytvoriť inštanciu tejto triedy.
Tu vytváraš nový objekt myShape triedy ConcreteShape a predávaš popis konštruktoru. Potom zavoláš metódu print, ktorá vytlačí popis.
Pridanie ďalších vlastností
Môžeš do svojej subtriedy pridať ďalšie vlastnosti alebo dokonca metódy, ktoré sú špecifické pre túto subtriedu.
Tu si rozšíril triedu ConcreteShape pridaním ďalších parametrov do konštruktora.
Využitie dedičnosti
Pomocou kľúčového slova super môžeš zavolať metódu describe základnej triedy, aby si skombinoval vlastnosti základnej triedy a subtriedy.
Zhrnutie – Dedičnosť v JavaScripte: Od ES6 po ES13
V tomto tutoriáli si sa naučil, ako funguje dedičnosť v JavaScripte, najmä s novou syntaxou class. Vidíš, ako definovať triedy, ako dediť od základnej triedy a ako správne zavolať konštruktor. Tieto mechanizmy ti uľahčujú udržiavať tvoj kód čítateľný a spravovateľný, pričom efektívne opakovane využívaš funkcie.
Často kladené otázky
Akoý je rozdiel medzi super() a this?super() sa používa na volanie konštruktora základnej triedy, zatiaľčo this sa odkazuje na inštanciu aktuálnej triedy.
Prečo je používanie ES6 tried lepšie ako prototypy?ES6 triedy ponúkajú jasnejšiu a intuitívnejšiu syntax, ktorá uľahčuje čítanie a pochopenie kódu.
Môžem mať viacero základných tried?Nie, JavaScript nepodporuje viaceré dedičnosti. Trieda môže dediť iba od jednej inej triedy.
Čo sa stane, ak nezavolám super()?Ak nezavoláš super(), dostaneš chybu, pretože konštruktor základnej triedy, ktorý inicializuje to, čo je pre triedu potrebné, nebude vykonaný.