Dědičnost tříd v JavaScriptu

Dědičnost tříd v JavaScriptu

Tradičně se v JS implementovala dědičnost pomocí prototypové dědičnosti, kterému je věnovaný samostatný článek. Mezi programátory Javascriptu se dřív místo tříd používaly konstrukční funkce, krátce konstruktory, které využívali vlastnosti prototype.

Ve verzi ECMAScript 2015 (ES6) bylo do javascriptu přidáno klíčové slovo class, To umožňuje snadnější zápis kódu pro vytvoření a dědění objektů.

Potřebná unifikace a transparentnost

Podpora tříd je dobrá zpráva, protože do té doby mnoho frameworků používá svůj proprietární způsob tvorby objektů.

Jinak se vytvářeli komponenty v reaktu, jinak v Angularu atd. Nyní je kod víc unifikovaný.

React.createClass({})

Voláním metody createClass které předáváte objekt (případně s dalšími metodami), není na počátku příliš jasné, jaká magie se děje na pozadí. Co createClass vrací.

Syntaxe pro vytvoření třídy a dědičnosti s klíčovým slovem class je následující:

class A {
  // Konstruktor pro A
  constructor() {}
  // Metoda pro A
  sayHi() {
    console.log("Hi!");
  }
}

class B extends A {
  // Konstruktor pro B
  constructor() {
    super();
  }
}

let b = new B();
b.sayHi();