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