Answer
t.me/js_testОтвет:
const sayHiMixin = {
sayHi() {
console.log(`Hi, ${this.name}`);
},
};
const sayByeMixin = {
sayBye() {
console.log(`Bye, ${this.name}`);
},
};
Object.assign(User.prototype, sayHiMixin);
Object.assign(User.prototype, sayByeMixin);
Объяснение:
В javaScript нет множественного наследования но если вы всё-таки хотите получить методы нескольких объектов в свой класс то можно использовать другой паттерн объектно-ориентированного программирования под названием миксины (или примеси). Для этого нам всего-лишь нужно создать объект или класс и примешать его свойства и методы к прототипу нашего основного класса с помощью метода Object.assign.
Код для проверки:
const sayHiMixin = {
sayHi() {
console.log(`Hi, ${this.name}`);
},
};
const sayByeMixin = {
sayBye() {
console.log(`Bye, ${this.name}`);
},
};
class User {
constructor(name) {
this.name = name;
}
}
Object.assign(User.prototype, sayHiMixin);
Object.assign(User.prototype, sayByeMixin);
const user = new User("Leo");
user.sayHi(); // Hi, Leo
user.sayBye(); // Bye, Leo