Sobes.tech
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