Sobes.tech
Middle+

Jaký typ dědičnosti se používá v JavaScriptu? Existuje vícenásobná dědičnost u tříd?

sobes.tech AI

Odpověď od AI

V JavaScript se používá prototypové dědičnost, a s příchodem tříd (ES6) — je to syntaktický cukr nad prototypy. Třídy v JS podporují jednoduché dědičnosti, tj. třída může dědit pouze od jednoho rodiče.

V JavaScriptu neexistuje vícenásobné dědění tříd, ale lze použít mixiny — funkce, které přidávají metody do třídy, aby napodobili vícenásobné dědění.

Příklad jednoduchého dědění:

class Animal {
  speak() {
    console.log('Zvuk zvířete');
  }
}

class Dog extends Animal {
  speak() {
    console.log('Haf!');
  }
}

const dog = new Dog();
dog.speak(); // Haf!

Příklad mixinu:

const CanFly = Base => class extends Base {
  fly() {
    console.log('Let');
  }
};

class Bird {}
class Eagle extends CanFly(Bird) {}

const eagle = new Eagle();
eagle.fly(); // Let