Dědičnost je centrální koncept v objektově orientovaném programování, který ti umožňuje rozšiřovat existující třídy a využívat jejich vlastnosti a metody. JavaScript s uvedením ES6 zavádí novější a robustnější syntaxi dědičnosti, která je mnohem snazší na použití než původní metody prototypů. V tomto průvodci ti ukážu, jak aplikovat dědičnost v JavaScriptu pomocí klíčového slova extends, a vysvětlím ti krok za krokem, jak správně zavolat konstruktor základní třídy pomocí super.
Hlavní poznatky
- Dědičnost v JavaScriptu se provádí pomocí klíčového slova extends.
- Konstruktor základní třídy musí být volán pomocí super.
- Instanční proměnné mohou být odkazovány pomocí klíčového slova this v odvozené třídě.
Průvodce krok za krokem
Vytvoření základní třídy
Abychom začali s dědičností, nejprve vytvoříme základní třídu s názvem Shape. V této třídě definujeme konstruktor a také několik metod.
Zde definuješ třídu Shape, která má konstruktor. Můžeš v tomto konstruktoru definovat proměnné a funkce, k nimž mohou mít přístup jiné třídy.

Prozkoumání odvozené třídy
Po vytvoření základní třídy můžeš nyní vytvořit odvozenou třídu, která dědí z Shape. V tomto příkladu nazveme novou třídu ConcreteShape.
V této odvozené třídě používáme klíčové slovo extends, abychom naznačili, že ConcreteShape dědí z Shape. Konstruktor odvozené třídy volá konstruktor základní třídy Shape pomocí super(), což je nezbytné pro správnou implementaci dědičnosti.
Instancování odvozené třídy
Nyní, když jsme vytvořili odvozenou třídu, je čas vytvořit instanci této třídy.
Zde vytváříš nový objekt myShape třídy ConcreteShape a předáváš popis konstruktoru. Poté vyvoláš metodu print, která vypíše popis.
Přidání dalších vlastností
Můžeš své odvozené třídě přidat další vlastnosti nebo dokonce metody, které jsou specifické pro tuto odvozenou třídu.
Zde jsi rozšířil třídu ConcreteShape přidáním dalších parametrů do konstruktoru.
Využití dědičnosti
Pomocí klíčového slova super můžeš vyvolat metodu describe základní třídy, abys zkombinoval vlastnosti základní třídy a odvozené třídy.
Souhrn – Dědičnost v JavaScriptu: Od ES6 po ES13
V tomto tutoriálu jsi se naučil, jak funguje dědičnost v JavaScriptu, zejména s novou syntaxi class. Viděl jsi, jak definovat třídy, jak dědit z základní třídy a jak správně zavolat konstruktor. Tyto mechanismy ti usnadňují udržovat svou kódovou základnu čistou a snadno udržovatelnou tím, že efektivně znovu využíváš funkce.
Často kladené otázky
Jaký je rozdíl mezi super() a this?super() se používá k volání konstruktoru základní třídy, zatímco this odkazuje na instanci aktuální třídy.
Proč je používání tříd ES6 lepší než prototypy?Třídy ES6 poskytují jasnější a intuitivnější syntaxi, která usnadňuje čtení a porozumění kódu.
Mohou mít více základních tříd?Ne, JavaScript nepodporuje vícenásobnou dědičnost. Třída může dědit pouze z jedné jiné třídy.
Co se stane, když nezavolám super()?Pokud nezavoláš super(), dostaneš chybu, protože konstruktor základní třídy, který inicializuje to, co je pro třídu nezbytné, nebude vykonán.