Ich habe die letzten paar Stunden damit verbracht, eine Lösung für mein Problem zu finden, aber es scheint hoffnungslos zu sein.
Grundsätzlich muss ich wissen, wie man eine übergeordnete Methode aus einer untergeordneten Klasse aufruft. All das, was ich bisher versucht habe, führt dazu, dass die übergeordnete Methode entweder nicht funktioniert oder überschrieben wird.
Ich verwende den folgenden Code, um OOP in Javascript einzurichten:
// 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);
Ich muss zuerst die Methode des Elternteils aufrufen und dann in der untergeordneten Klasse weitere Dinge hinzufügen.
In den meisten OOP-Sprachen wäre das so einfach wie das Aufrufen. parent.myMethod()
Aber ich kann wirklich nicht verstehen, wie es in Javascript gemacht wird.
Jede Hilfe wird sehr geschätzt, danke!
ParentClass.prototype.myMethod.apply() or
ParentClass.prototype.myMethod.call () `ausführen, wie Sie es mit Ihrem Konstruktor tun.