Schauen wir uns zunächst die Vererbung der Nicht-Mainstream-Vererbung an: Instanzvererbungsmethode.
Ich sage nicht so viel Unsinn. Da es durch Nicht-Mainstream vererbt wird, darf es nicht häufig verwendet werden. Da es nicht häufig verwendet wird und immer noch existiert, gibt es nur einen Faktor, den es in bestimmten Anlässen verwendet wird. Die Instanzvererbungsmethode wird hauptsächlich für die Vererbung von Kernobjekten verwendet und ist auch die einzige Möglichkeit, die Vererbung von Kernobjekten bisher zu lösen.
Die Vererbung von Kernobjekten hat einen bestimmten Wert. Zum Beispiel das Fehlerobjekt. Unser Unternehmen muss möglicherweise eine Fehlerklasse implementieren, um die zukünftige Entwicklung zu vereinfachen. Zu diesem Zeitpunkt muss ich die Instanz -Vererbungsmethode verwenden, um den Fehler zu erben.
Der Code ist wie folgt:
Die Codekopie lautet wie folgt:
Funktion ExtendingError (MES)
{
var Instance = neuer Fehler (MES);
instance.newError = function () {
alarm ("Ihr Fehler ist"+mes);
}
Rückkehrinstanz;
}
OK, teste es:
Die Codekopie lautet wie folgt:
var e = new ExtendingError ("Ihre Zahl ist weniger als eins");
E.NewError ();
alert (e.tostring ());
Die Ergebnisse befriedigen uns:
OK, ohne viel Unsinn zu sagen, ist dies eine Nicht-Mainstream-Vererbungsmethode, die im Wesentlichen nur für die Erbe von Kernobjekten verwendet wird. Denken Sie daran!
Schauen wir uns als nächstes die zweite Vererbungsmethode für Nicht-Mainstream-Vererbung an.
Wie der Name schon sagt, bedeutet die Kopie der Vererbung das Vererbung von Objekten durch das Kopieren. Was soll ich kopieren? Es ist offensichtlich, dass es die Eigenschaften und Methoden des Objekts sind. Erinnerst du dich noch daran, dass die Klasse in JavaScript tatsächlich ein Hashtable ist? Wenn Sie sich nicht erinnern können, gehen Sie zurück und überprüfen Sie die Grundlagen. Ich kann in einer Weile einen Artikel über JavaScript -Objekte schreiben.
Es wird einfacher sein, dies zu verstehen. Schauen Sie sich einfach den Code an:
Schreiben Sie zuerst eine Erweiterungsmethode:
Die Codekopie lautet wie folgt:
Function.prototype.extend = function () {
für (var pro in obj)
{
// Dies ist eigentlich eine vollständige Kopie der Eigenschaften und Methoden der übergeordneten Klasse
this.prototype [pro] = obj [pro];
}
}
OK, schreiben Sie einen Code, um zu sehen, wie man ihn verwendet:
Die Codekopie lautet wie folgt:
Funktion Animal ()
{}
Funktion people ()
{}
People.extend (New Animal ())
{}
Eine anspruchsvolle Person kann auf einen Blick sehen, dass die Nachteile dieser Methode zu offensichtlich sind:
Beim Kopieren der Attributmethoden eines Objekts nacheinander wird tatsächlich Reflexion verwendet. Ich werde nicht viel über den Schaden an der Effizienz der Reflexion sagen.
Wie der Prototyp -Vererbung muss das übergeordnete Objekt initialisiert werden. Wenn die Vererbungsbeziehung bestimmt wird, die Parameter jedoch immer noch ungewiss sind, kann sie nicht gespielt werden!
Kurz gesagt, diese Methode wird im Allgemeinen nicht verwendet.
Okay, lassen Sie uns über etwas häufig verwendetes sprechen. Gemischtes Vererbung!
Dies basiert auf zwei Mainstream -Vererbungsmethoden. Wenn wir die beiden Vererbungsmethoden vergleichen, können wir feststellen, dass die Vor- und Nachteile der beiden Vererbungsmethoden komplementär sind, sodass es einfach ist, sie zusammen zu mischen!
Die Codekopie lautet wie folgt:
Funktion people (Name)
{
this.name = name;
this.sayname = function () {
alarm ("Mein Name ist"+Name);
}
}
Funktionsmädchen (Name, Alter)
{
// Erbschaft der Konstruktion
this.father = people;
Dieser. Vater (Name);
Löschen Sie diesen.
this.incoducuce = function () {
alarm ("Mein Name ist"+name+". Ich bin"+Alter);
}
}
// Prototyp -Vererbung
Girl.Prototype = new People ();
Okay, eine Mischung der beiden Methoden, sehen wir nun sehen, ob das Problem gelöst wurde?
var g = neues Mädchen ("Xuan", 22);
ALERT (g Instanz der Menschen);
g.sayname ();
G.Interase ();
Test bestanden!
Dies ist eine relativ perfekte Lösung, erhöht jedoch die Komplexität des Codes, sodass die spezifische Lösung von der Wahl aller in der Praxis abhängt.
Dies ist alle Möglichkeiten, mit JavaScript zu spielen. Jeder ist herzlich eingeladen, weiterhin meinen anderen Artikeln zu folgen.