Ich hatte einige Pseudoklassen, die einen großen Teil ihrer Initialisierung geteilt. Ich beschloss, diese Initialisierung herauszunehmen und eine Basisklasse zu erstellen, von der sie erben werden.Javascript Vererbung mit super() Anruf
function BaseClass(param1, param2) {
...
}
function SubClassA(param1) {
...
}
function SubClassB(param1) {
...
}
Ich möchte SubClass1
und SubClass2
von BaseClass
auf folgende Weise erben:
SubClassA(param1)
Konstruktor ruft BaseClass(param1, "I am A.")
SubClassB(param1)
Konstruktor BaseClass(param1, "I am B.")
ruft
so fügt BaseClass
einige Eigenschaften zu ihnen. Dann führen beide Unterklassen ihre eigene Initialisierung durch.
Jetzt kann ich nicht einfach SubClassA.prototype = new BaseClass()
tun, weil ich möchte, dass der Superkonstruktor Parameter nimmt. Wie macht man das elegant?
Sie verdammen Ninjas zu drucken! ;) – kiswa
Ah, Call() kam mir nicht in den Sinn. Ok, danke;) @kiswa, wenn es dir nichts ausmacht, nehme ich taskinoor an, da er das erste Poster war :) – Imp
Scheint mir fair. Aber fühlen Sie sich frei, beide zu erhöhen!;) Außerdem habe ich einen Link zu MDN für weitere Details hinzugefügt, wenn Sie interessiert sind. – kiswa