Hola amigos, tengo un problema con herencia en javascript y quisiera que por favor me ayuden a dar solución, les explico.
Tengo 3 clases: Animal(padre), Gato(hijo), Aux.
//clase Aux
var Aux = function(p1){
this.parametro1 = p1;
console.log(p1);
}
Aux.prototype.constructor = Aux;
//clase Animal
var Animal = function(nombre, peso){
this.nombre = nombre;
this.peso = peso;
this.aux = new Aux('parametro1');
}
Animal.prototype.constructor = Animal;
//clase Gato
var Gato = function(nombre, peso){
Animal.call(this, nombre, peso);
this.aux = new Aux("parametro2");
}
Gato.prototype = Object.create(Animal.prototype);
Gato.prototype.constructor = Gato.prototype.constructor = Gato;
Ahora creo el objeto gato:
var gato = new Gato("michifu", 9);
y en la consola veo que se imprime los 2 parametros pasados a la clase Aux, por lo tanto se creo 2 objetos tipo Aux y ese es mi problema, ya que consume doble espacio en memoria etc.:
parametro1
parametro2
si yo realizo las mismas clases en PHP u otro, el resultado es distinto ya que solo imprime o instancia una sola vez la clase Aux en la clase Gato(hijo) y no asi en la clase Animal(padre).
Bueno amigos solicito su ayuda.!! ya que es un gran problema para mí puesto que estoy realizando un juego en javascript y debo simular un comportamiento de herencia aceptable donde cada detalle cuenta para la velocidad e instanciar 2 veces seria un terrible dolor de cabeza.
Nota. estas 3 clases no son de mi juego, solo quise simplificar por completo y mostrar el comportamiento de 3 clases simples y saber si existe alguna solución.