Answer

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

Report Page