Sé que hay muchas preguntas similares que son toneladas de excelentes respuestas a esto. Traté de ver los métodos de herencia clásicos, o los métodos de cierre, etc. De alguna manera, considero que son métodos más o menos "piratas" para mí, ya que no es realmente lo que el javascript está diseñado para hacer. (Bienvenido, alguien me corrige si estoy equivocado). bien, siempre y cuando funciona, me satisface con el patrón de herencia clásica como:javascript inheritance
PARENTClass = function (basevar) { do something here; };
PARENTClass.prototype = { a: b, c: d}; // prototype is auto gen
// Inheritance goes here
CHILDClass = function (childvar) { do something; };
CHILDClass.prototype = new PARENTClass(*1); // Actual inheritance to the prototype statement
// Instance
CHILDInstance = new CHILDClass(whatever);
Por encima es de alguna manera, a mi entender la herencia de JS. Pero un escenario que no tengo idea de cómo implementar, ¿es eso si quiero hacer algo de inicialización DURANTE la creación de objetos (es decir, dentro del constructor), y el nuevo objeto puede usarse de inmediato ... Mi ilustración del problema podría no ser demasiado clara, por lo que me permitió usar el siguiente C# Psuedo para explicar lo que quiero hacer: (. init elementos de la IU)
class PARENT {
public PARENT (basevar) { ... }
}
class CHILD : PARENT {
public CHILD (basevar) : PARENT (basevar) // constructor of child, and call parent constructor during construct.
{ ... }
}
Por alguna razón, poniéndolos en el constructor parece la mejor manera de hacerlo. Alguien tiene idea de cómo puedo hacerlo.
PD: en el * 1, no tengo idea de lo que debería poner allí. PS2: La situación anterior que Hice encontrar que la biblioteca jquery.inherit puede hacer, solo me pregunto si no usar la biblioteca puede lograrlo. PS3: O mi comprensión es incorrecta. Como javascript no pretende imitar el OOP (por eso lo llamo hack), ¿cuál es la lógica "CORRECTA" para implementar esto?
mira esto: http://stackoverflow.com/questions/7486825/javascript-inheritance/12816953#12816953 –
Uso Object.create() para heredar el prototipo de la clase base. De esa forma, los cambios en la clase base se reducen a la subclase, pero no al revés. Más detalles en mi blog: http://ncombo.wordpress.com/2013/07/11/javascript-inheritance-done-right/ – Jon