Heim  >  Artikel  >  Web-Frontend  >  Die Beziehung zwischen der Prototypenvererbung von Klassen und js-Prototypen in ES6

Die Beziehung zwischen der Prototypenvererbung von Klassen und js-Prototypen in ES6

小云云
小云云Original
2018-03-07 15:27:561378Durchsuche

ES6 führt die Schlüsselwortklasse ein, um das Schreiben von Code weiter zu reduzieren und die Codelogik zu vereinfachen. Die Implementierung der Klasse basiert jedoch auch auf dem Prototyp, und die meisten ihrer Funktionen können durch ES5 erreicht werden. Die neue Klassenschreibmethode macht die Schreibmethode des Objektprototyps klarer und ähnelt eher der objektorientierten Programmierung. Nur Grammatik.

class Person {
constructor(name) {
this.name=name||"Default";
}
toString(){
return 'Name:'+this.name;
}
}
var p1=new Person();
console.log(p1.name);
class Boy extends Person{
constructor(name){
super(name);
this.gende='Boy';
}
toString(){
return super.toString()+" - Gende:"+this.gende;
}
}
var b1=new Boy('hello');
console.log(b1);
console.log(b1.toString());

ES5-Vererbung, also Prototyp
besteht im Wesentlichen darin, zuerst das Instanzobjekt der Unterklasse this
zu erstellen und dann die Methoden der übergeordneten Klasse hinzuzufügen this ( Parent.apply(this))
ES6-Vererbung, d. h. Klasse
erstellt im Wesentlichen das Instanzobjekt this der übergeordneten Klasse (super muss zuerst aufgerufen werden)
und verwendet dann den Konstruktor der Unterklasse um dies zu ändern
Ihre Implementierungsmechanismen sind unterschiedlich
Wie ES6 und ES5 teilen sich alle Instanzen einer Klasse ein Prototypobjekt

Für es6 ist es weiterhin notwendig, die Dokumentation zu lesen.

Verwandte Empfehlungen:

Detaillierte Erläuterung des Klassenschlüsselworts in ES6

Verwendungsbeispiele für Get- und Set-Klassenklassen in ES6-Javascript

Detaillierte Erläuterung der Verwendung des Prototype-Attributs von js

Das obige ist der detaillierte Inhalt vonDie Beziehung zwischen der Prototypenvererbung von Klassen und js-Prototypen in ES6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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