Задать вопрос
@dimentimor

Как реализовать множественное наследование свойств и методов?

Здравствуйте!

function A() { this.a = 10; }
A.prototype.sayA= function () {};

function B() { this.b = 20; }
B.prototype.sayB= function () {};


function C() {
	// Так вызов функции не создает экземпляр.
	// Методы прототипов не наследуются
	A.call(this); 
	B.call(this);

	// А так метод попадает к свойству "a", а не экземпляру С.
	// И сами объекты тут не нужны. Нужны их свойства и методы.
	this.a = new A();
	this.b = new B();

	// Нужно, что-бы этот конструктор мог ничего не знать
	// о конструкторах А и В (кроме имен)
}

C.prototype.sayC= function () {};

var c = new C();
  • Вопрос задан
  • 205 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Насколько я понял, вам нужно что-то такое:

function C() {
  A.call(this);
  B.call(this);
}
Object.assign(C.prototype, A.prototype, B.prototype);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы