Middle+
Koks yra naudojamas paveldėjimo tipas JavaScript? Ar yra daugybinis paveldėjimas klasėse?
sobes.tech AI
Atsakymas iš AI
JavaScript naudojama prototipinė paveldėjimas, ir su klasų (ES6) atsiradimu — tai sintaksinis cukrus virš prototipų. JS klasės palaiko viengubą paveldėjimą, tai yra, klasė gali paveldėti tik iš vieno tėvo.
JavaScript klasėse nėra daugybinio paveldėjimo, tačiau galima naudoti miksinus — funkcijas, kurios prideda metodus prie klasės, kad imituotų daugybinį paveldėjimą.
Pavyzdys viengubo paveldėjimo:
class Animal {
speak() {
console.log('Gyvūno garsas');
}
}
class Dog extends Animal {
speak() {
console.log('Au!');
}
}
const dog = new Dog();
dog.speak(); // Au!
Miksino pavyzdys:
const CanFly = Base => class extends Base {
fly() {
console.log('Skrydis');
}
};
class Bird {}
class Eagle extends CanFly(Bird) {}
const eagle = new Eagle();
eagle.fly(); // Skrydis