He pasado las últimas horas tratando de encontrar una solución a mi problema, pero parece ser inútil.Cómo llamar a un método principal desde la clase secundaria en javascript?
Básicamente, necesito saber cómo llamar a un método principal de una clase secundaria. Todas las cosas que he intentado hasta ahora terminan o no funcionan o sobreescribo el método principal.
Estoy utilizando el código siguiente para configurar programación orientada a objetos en javascript:
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) {
// HOW DO I CALL THE PARENT METHOD HERE?
// do stuff
}
}
// setup the prototype chain
extend(ParentObject, ChildObject);
tengo que llamar al método de los padres primero y luego añadir más cosas a ella en la clase hija.
En la mayoría de los lenguajes OOP sería tan simple como llamar al parent.myMethod()
Pero realmente no puedo comprender cómo se hace en JavaScript.
¡Cualquier ayuda es muy apreciada, gracias!
Si desea llamar en el contexto de la instancia actual, que tiene que hacer 'ParentClass.prototype.myMethod.apply() o' ParentClass.prototype.myMethod.call() ', como lo hace con tu constructor – JMM
Simplemente agregue que si desea llamar con argumentos, van dentro de la función aplicar o llamar ('ParentClass.prototype.myMethod.call (this, arg1, arg2, arg3 ...);') –
No lo hago entender. Si llamo ParentClass.prototype.myMethod.call (esto); de myMethod de ChildObject, tengo un error "TypeError no capturado: no se puede leer la propiedad 'call' de undefined". – zhekaus