@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();
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Насколько я понял, вам нужно что-то такое:

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

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

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 13:07
7000 руб./за проект
07 мая 2024, в 12:59
500 руб./за проект
07 мая 2024, в 12:58
25000 руб./за проект