Heim  >  Artikel  >  Web-Frontend  >  Sprechen Sie kurz über die Fähigkeiten zur Wiederverwendung von Javascript-Code

Sprechen Sie kurz über die Fähigkeiten zur Wiederverwendung von Javascript-Code

WBOY
WBOYOriginal
2016-05-16 16:17:291319Durchsuche

Es gibt ein berühmtes Prinzip für die Wiederverwendung von Code, das von GoF vorgeschlagen wurde: Geben Sie der Objektzusammensetzung Vorrang vor der Klassenvererbung. In JavaScript gibt es kein Klassenkonzept, sodass die Wiederverwendung von Code nicht auf die Klassenvererbung beschränkt ist. Es gibt viele Möglichkeiten, Objekte in JavaScript zu erstellen. Es gibt Konstruktoren, mit denen Sie Objekte erstellen und dynamisch ändern können. Die Nicht-Klassen-Vererbung von JavaScript (die als modernes Vererbungsmodell bezeichnet werden kann) verfügt auch über viele Wiederverwendungsmethoden, z. B. die Verwendung anderer Objekte zum Kombinieren zu den erforderlichen Objekten, die Objektmischtechnologie sowie das Ausleihen und Wiederverwenden der erforderlichen Methoden.

Klassenvererbungsmodus – Standardmodus

Beispiele für zwei Konstruktoren Parent und Child:

Code kopieren Der Code lautet wie folgt:

Funktion Parent(name){
this.name = name||"Adam";
}
Parent.prototype.say = {
return this.name;
};
Funktion Kind(Name){
}
inherit(Child,Parent);

Das Folgende ist eine Implementierungsmethode der wiederverwendbaren Vererbungsfunktion inherit():

Code kopieren Der Code lautet wie folgt:

Funktion inherit(C,P){
C.prototype = new P();
}

Das Prototyp-Attribut sollte hier auf ein Objekt und nicht auf eine Funktion verweisen. Daher muss es auf eine vom übergeordneten Konstruktor erstellte Instanz verweisen, nicht auf den Konstruktor selbst.

Danach werden bei der Erstellung des Child-Objekts seine Funktionen von der Parent-Instanz über den Prototyp abgerufen:

Code kopieren Der Code lautet wie folgt:

var kid =new Child();
kid.say();//"Adam"

Die Prototypenkette nach dem Aufruf der Vererbung:

Weitere Attribute des Kindes hinzufügen:

Code kopieren Der Code lautet wie folgt:

var kid = new Child();
kid.name = "Patrick";
kid.say();//"Patrick"

Änderungen in der Prototypenkette:

Sie können den Namen in den Eigenschaften Ihres eigenen Objekts finden, sodass Sie nicht in der Prototypenkette nachschlagen müssen.

Einer der Nachteile der Verwendung des obigen Musters besteht darin, dass die Attribute zweier Objekte gleichzeitig geerbt werden, nämlich die diesem hinzugefügten Attribute und die Prototypattribute. In den meisten Fällen sind diese Eigenschaften nicht erforderlich.

Ein weiterer Nachteil besteht darin, dass die Verwendung der inherit()-Vererbung die Übergabe von Parametern an Unterkonstruktoren nicht unterstützt, zum Beispiel:

Code kopieren Der Code lautet wie folgt:

var s = neues Kind("Seth");
s.say();//"Adam"

Dieses Ergebnis ist nicht zu erwarten. Obwohl der untergeordnete Konstruktor Parameter an den übergeordneten Konstruktor übergeben kann, muss dieser Vererbungsmechanismus jedes Mal erneut ausgeführt werden, wenn ein untergeordnetes Objekt benötigt wird, und ist ineffizient, da am Ende das übergeordnete Objekt vorhanden ist neu erstellt.

Dieser Artikel endet hier. Wir werden die anderen Modi des JavaScript-Code-Wiederverwendungsmodus in Zukunft weiter aktualisieren.

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