Sobes.tech
Middle+

Quale tipo di ereditarietà viene utilizzato in JavaScript? Esiste l'ereditarietà multipla nelle classi?

sobes.tech AI

Risposta dell'AI

In JavaScript si utilizza l'ereditarietà prototipica, e con l'introduzione delle classi (ES6) — zucchero sintattico sopra i prototipi. Le classi in JS supportano l'ereditarietà singola, cioè una classe può ereditare solo da un genitore.

Non esiste ereditarietà multipla nelle classi JavaScript, ma si possono usare mixin — funzioni che aggiungono metodi a una classe per imitare l'ereditarietà multipla.

Esempio di ereditarietà singola:

class Animal {
  speak() {
    console.log('Suono animale');
  }
}

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

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

Esempio di mixin:

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

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

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