Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist kombinierte Vererbung in JS? Einführung in die Vererbung von JS-Kombinationen

不言
Freigeben: 2018-10-23 15:46:21
nach vorne
2943 Leute haben es durchsucht

In diesem Artikel erfahren Sie, was die kombinierte Vererbung von JS ist. Die Einführung der js-Kombinationsvererbung hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.

Kombinationsvererbung

Kombinationsvererbung, manchmal auch pseudoklassische Vererbung genannt, bezieht sich auf: die Kombination der Prototypkette und eines Vererbungsmusters, das die Techniken von übernimmt Konstruktoren und kombiniert sie, um das Beste aus beiden Welten zu nutzen.

Implementierungsidee: Verwenden Sie die Prototypkette, um die Vererbung von Prototypmethoden und -methoden zu realisieren, und leihen Sie den Konstruktor aus, um die Vererbung von Instanzattributen zu realisieren.

Auf diese Weise wird die Wiederverwendung von Funktionen durch die Definition von Methoden am Prototyp erreicht und außerdem sichergestellt, dass jedes Instanzobjekt über eigene Attribute verfügt.

function SuperType(name){
    this.name = name;
    this.colors = ["red","green","blue"];
}

SuperType.prototype.sayName = function(){
    console.log(this.name);
}

function SubType(name, age) {
    
    //继承属性
    SuperType.call(this, name);

    this.age = age;
}

//继承方法
SubType.prototype = new SuperType();
SubType.prototype.constructor = SubType();
SubType.prototype.sayAge = function(){
    console.log(this.age);
}

var instance1 = new SubType("Shaw", 18);
instance1.colors.push("black");
console.log(instance1.colors); //["red","green","blue","black"]
instance1.sayName(); // "Shaw"
instance1.sayAge(); // 18

var instance2 = new SubType("Roc", 19);
console.log(instance2.colors); // ["red", "green", "blue"]
instance2.sayName(); // "Roc"
instance2.sayAge(); // 19
Nach dem Login kopieren

Im obigen Code definiert der SuperType-Konstruktor zwei Attribute: Name und Farben.

definiert eine sayName()-Methode für den Prototyp von SuperType.

Der SubType-Konstruktor übergibt beim Aufruf des SuperType-Konstruktors den Namensparameter und definiert dann sein eigenes Attributalter.

Weisen Sie dann das SuperType-Instanzobjekt dem SubType-Prototyp zu und definieren Sie dann die Methode sayAge() und

für den neuen Prototyp. Auf diese Weise werden nicht nur zwei verschiedene SubType-Instanzobjekte erstellt ihre eigenen Eigenschaften – einschließlich der Eigenschaft „Farben“, können aber auch dieselbe Methode verwenden.

Komposition vermeidet die Nachteile der Prototypenverkettung und geliehener Konstruktoren und kombiniert deren Vorteile. Wird zum am häufigsten verwendeten Vererbungsmuster in JavaScript. Darüber hinaus können die Methoden „instanceof“ und „isPrototypeOf()“ des Operators auch zur Identifizierung von Objekten verwendet werden, die auf der Grundlage kompositorischer Vererbung erstellt wurden.

Das obige ist der detaillierte Inhalt vonWas ist kombinierte Vererbung in JS? Einführung in die Vererbung von JS-Kombinationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!