Heim >Web-Frontend >js-Tutorial >Javascript spielt mit Vererbung (3)_Javascript-Fähigkeiten

Javascript spielt mit Vererbung (3)_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:49:131142Durchsuche

Schauen wir uns zunächst die nicht zum Mainstream gehörende Vererbung an: die Instanzvererbung.

Ich werde nicht so viel Unsinn reden. Da es sich um eine Nicht-Mainstream-Vererbung handelt, darf es nicht häufig verwendet werden. Da es immer noch vorhanden ist, wenn es nicht häufig verwendet wird, gibt es nur einen Faktor . Die Instanzvererbungsmethode wird hauptsächlich für die Vererbung von Kernobjekten verwendet und ist bisher auch die einzige Möglichkeit, die Vererbung von Kernobjekten zu lösen.

Die Vererbung von Kernobjekten hat einen bestimmten Wert, z. B. das Fehlerobjekt. Unser Unternehmen muss möglicherweise selbst eine Fehlerklasse implementieren, um die zukünftige Entwicklung zu vereinfachen. Zu diesem Zeitpunkt werde ich die Instanzvererbungsmethode verwenden, um Fehler zu erben.

Der Code lautet wie folgt:

Code kopieren Der Code lautet wie folgt:

function ExtendingError(mes)
{
var Instanz=neuer Fehler(mes);
Instanz.NewError=Funktion(){
Alert("Ihr Fehler ist " mes);
}


Okay, testen wir:

var e=new ExtendingError("Ihre Nummer ist kleiner als eins");
e.NewError();
alert(e.toString());


Die Ergebnisse überzeugen uns:


Okay, ohne weitere Umschweife, dies ist eine nicht gängige Vererbungsmethode. Sie wird im Grunde nur für die Vererbung von Kernobjekten verwendet.

Werfen wir einen Blick auf die Nicht-Mainstream-Vererbung 2: Kopiervererbungsmethode.


Wie der Name schon sagt, handelt es sich bei der Kopiervererbung um die Vererbung von Objekten durch Kopieren. Was wird kopiert? Offensichtlich sind es die Eigenschaften und Methoden des Objekts. Erinnern Sie sich, dass eine Klasse in Javascript tatsächlich eine Hashtable ist? Wenn Sie sich nicht daran erinnern können, schauen Sie sich die Grundlagen noch einmal an. Vielleicht schreibe ich demnächst einen Artikel über Javascript-Objekte.

Sobald Sie dies verstanden haben, wird es einfach zu handhaben sein. Schauen Sie sich einfach den Code an:

Schreiben Sie zuerst eine Extend-Methode:

Function.prototype.Extend=function() {
for(var pro in obj)
{
//Dies kopiert tatsächlich vollständig die Attribute und Methoden der übergeordneten Klasse
this.prototype[pro]=obj[pro];
}
}


Okay, schreiben wir etwas Code, um zu sehen, wie man ihn verwendet:

Funktion Animal()
{ }
Funktion People()
{ }
People.Extend(new Animal())
{ }


Eine anspruchsvolle Person kann auf einen Blick erkennen, dass die Mängel dieser Methode zu offensichtlich sind: Beim Kopieren der Attributmethoden des Objekts wird tatsächlich Reflexion verwendet. Ich werde nicht näher darauf eingehen Schaden, den diese Reflexion der Effizienz zufügt.

Ähnlich wie bei der prototypischen Vererbung muss das übergeordnete Klassenobjekt initialisiert werden. Wenn die Vererbungsbeziehung bestimmt ist, die Parameter jedoch noch nicht sicher sind, funktioniert es nicht!

Kurz gesagt, diese Methode wird im Allgemeinen nicht verwendet.

Okay, lass uns über etwas sprechen, das häufig verwendet wird. Gemischte Vererbung!

Dies basiert auf zwei gängigen Vererbungsmethoden. Beim Vergleich der beiden Vererbungsmethoden können wir feststellen, dass sich die Vor- und Nachteile der beiden Vererbungsmethoden ergänzen. Daher ist die Handhabung einfach. Lassen Sie uns sie miteinander kombinieren!


Funktion Personen (Name)
{
this.name=name;
this.SayName=function(){
alarm("Mein Name ist " name);
}
}
function Girl(name,age )
{
//Vererbung konstruieren
this.father=People;
this.father(name);
delete this.father;
this.Introduce=function(){
Alert("Mein Name ist "Name". Ich bin" Alter);
}
}
//Prototypische Vererbung
Girl.prototype=new People();
Okay , zwei Wenn wir diese Methoden mischen, wollen wir nun sehen, ist das Problem gelöst?
var g=new Girl("Xuan",22);
alert(g instanceof People);
g.SayName();
g.Introduce();


Test bestanden!

Dies ist eine relativ perfekte Lösung, aber sie erhöht die Komplexität des Codes, sodass die konkrete Lösung von der Wahl jedes Einzelnen in der Praxis abhängt.

Dies sind die Möglichkeiten, mit der Vererbung in Javascript zu spielen. Sie können gerne weiterhin meine anderen Artikel beachten.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn