Código Javascript
:
Ver originalOutputX.prototype = NodeX.prototype;
TableX.prototype = NodeX.prototype;
Esto no sirve para heredar. Estás igualando prototipos, has hecho que los tres "objetos" tengan el mismo prototipado. El comportamiento es raro, pero es fácil de evitar.
Cambialos por la mejor forma de heredar que he visto de momento:
Código Javascript
:
Ver originalOutputX.prototype = Object.create(NodeX.prototype);
TableX.prototype = Object.create(NodeX.prototype);
Ejemplo completo:
Código Javascript
:
Ver originalfunction NodeX(){};
NodeX.prototype.bla = function(){
console.log("NodeX.prototype.bla");
}
function OutputX(){}
OutputX.prototype = Object.create(NodeX.prototype);
OutputX.prototype.foo = function(){
console.log("OutputX.prototype.foo");
}
function TableX(){};
TableX.prototype = Object.create(NodeX.prototype);
TableX.prototype.foo = function(){
console.log("TableX.prototype.foo");
}
TableX.prototype.bar = function(){
console.log("TableX.prototype.bar");
}
var o = new OutputX;
o.foo();
o.bla();
o.bar();