Estaba jugando con JavaScript en particular simulando la programación orientada a objetos con clases y otras cosas.Copiar prototipo de herencia?
que sabía de esta manera de alcanzar la herencia
MyClass.prototype = new AnotherClass();
pero no estaba satisfecho, no me gusta la forma en que tenía que llamar al constructor de AnotherClass
. Así que estaba jugando y se me ocurrió algo que parecía funcionar y básicamente quería una segunda opinión.
function clone (obj)
{
function CloneFactory() {}
CloneFactory.prototype = obj;
return new CloneFactory();
}
MyClass.prototype = clone(AnotherClass.prototype);
clonando el prototipo que obtener una nueva copia del mismo y asignar a ese prototipo MyClass
's de modo que el cambio de las propiedades heredadas no afectará a las propiedades del prototipo de los padres. Me gusta esto sería MyClass.prototype = AnotherClass.prototype
.
Realicé pruebas de resistencia y esto es más eficiente bajo ciertas circunstancias, es decir, cuando hay mucho código en el constructor del padre, de lo contrario es casi lo mismo. Otro beneficio (o al menos creo que es beneficioso) es que permite en cierta medida ocultar información de las subclases. Los métodos y miembros privilegiados NO se heredarán.
¿Hay alguna falla importante que estoy pasando por alto?
No soy un experto con JavaScript, en realidad soy bastante nuevo en JavaScript, por lo que me gustaría tener una segunda opinión sobre esto porque parece que no puedo encontrar nada a través de Google. No quiero implementar un código malo :)!
Gracias! Ni siquiera sabía acerca de 'Object.create' hasta ahora. – SpaceFace