Middle+
Jaki typ dziedziczenia jest używany w JavaScript? Czy klasy mogą mieć dziedziczenie wielokrotne?
sobes.tech AI
Odpowiedź od AI
W JavaScript używany jest prototypowe dziedziczenie, a wraz z pojawieniem się klas (ES6) — jest to cukierek składniowy nad prototypami. Klasy w JS obsługują dziedziczenie pojedyncze, czyli klasa może dziedziczyć tylko od jednego rodzica.
W JavaScript nie ma dziedziczenia wielokrotnego klas, ale można używać mixinów — funkcji, które dodają metody do klasy, aby imitować dziedziczenie wielokrotne.
Przykład dziedziczenia pojedynczego:
class Animal {
speak() {
console.log('Dźwięk zwierzęcia');
}
}
class Dog extends Animal {
speak() {
console.log('Hau!');
}
}
const dog = new Dog();
dog.speak(); // Hau!
Przykład mixina:
const CanFly = Base => class extends Base {
fly() {
console.log('Latanie');
}
};
class Bird {}
class Eagle extends CanFly(Bird) {}
const eagle = new Eagle();
eagle.fly(); // Latanie