/*Базовый*/
function X(x) {
this.x = x;
}
X.prototype.getX = function(){return this.x;}
var x = new X(5);
/*Y*/
function Y(y) {
this.y = y;
}
Y.prototype = x; /*Наследем свойства/методы объекта x*/
Y.prototype.getY = function(){return this.y;}
var y = new Y(7);
/*Add*/
function Add() {
this.add = this.getX() + this.getY();
}
Add.prototype = y; /*Наследем y, + свойства/методы объекта x*/
Add.prototype.getAdd = function(){return this.add;}
var addTwoNum = new Add();
console.log(addTwoNum.add);
Немножко туповато вышло, но я получил унаследованные свойства/методы из выше по иерархии "классов".
Можно как то переделать код чтобы не так наследовать Y.prototype = x; и Add.prototype = y;, то есть по сути мне нужно сначала создать объекты x,y их инициализировать и наследовать.
А как то так
Y.prototype = X.prototype;
Add.prototype = Y.prototype;
И потом когда все будет в объекте типа Add(), туда передавать два значения x и y (new Add(5,7)), а там уже должны быть свойства
this.x = x;
this.y = y;
X.prototype.getX = function(){return this.x;}
Y.prototype.getY = function(){return this.y;}
Выходит все тоже самое просто убить создание промежуточных объектов
var x = new X(5);
var y = new Y(7);