java-script:multiple-inheritance
This is an old revision of the document!
Java Script Multiple Inheritance
JavaScript does not support multiple inheritance directly, which means a class can't extend more than one class.
The extends keyword can only be followed by a single class.
To incorporate functionality from multiple sources, JavaScript supports “mixins” as a way to accomplish this.
Java Script Mixins
A mixin is a class whose methods are intended to be added to (or “mixed in” to) other classes.
Example:
class Person { constructor(name, age) { this.name = name; this.age = age; } description() { return `A person named ${this.name} who is ${this.age} years old`; } } class Animal { eats() { return `${this.name} eats.`; } } const AnimalMixin = Base => class extends Base { eats() { return `${this.name} eats.`; } }; class Employee extends AnimalMixin(Person) { constructor(name, age, salary, jobTitle) { super(name, age); this.salary = salary; this.jobTitle = jobTitle; } description() { return `An employee is also ${super.description()}`; } } let employee = new Employee("Aurel", 30, 15000, "CEO boss"); console.log(employee.eats()); // Aurel eats. console.log(employee.description()); // An employee is also A person named Aurel who is 30 years old
java-script/multiple-inheritance.1690387122.txt.gz · Last modified: 2023/07/26 18:58 by odefta