Der Unterschied zwischen der Vererbung von es5 und es6 besteht darin, dass es5 zuerst die Unterklasse erstellt, die übergeordnete Klasse instanziiert und diese zur Unterklasse hinzufügt, um die Vererbung zu erreichen; während es6 zuerst die übergeordnete Klasse erstellt und durch Aufrufen der Super-Methode auf die übergeordnete Klasse zugreift In der instanziierten Teilmenge wird schließlich die Vererbung durch Modifizieren erreicht.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, ECMAScript Version 6.0, Dell G3-Computer.
Die ES5-Vererbung erstellt im Wesentlichen zuerst ein Instanzobjekt der Unterklasse und fügt dann die Methode der übergeordneten Klasse hinzu (Parent.apply(this)).
ES6 Der Vererbungsmechanismus ist im Grunde völlig anders: Das Instanzobjekt this der übergeordneten Klasse wird zuerst erstellt (daher muss zuerst die super()-Methode der übergeordneten Klasse aufgerufen werden) und dann wird dieses mithilfe des Konstruktors der Unterklasse geändert.
ES5-Vererbung wird über den Prototyp- oder Konstruktormechanismus implementiert.
ES6 definiert Klassen über das Schlüsselwort „class“, das Konstruktoren enthält, und die Vererbung zwischen Klassen wird über das Schlüsselwort „extends“ erreicht. Unterklassen müssen die Super-Methode in der Konstruktormethode aufrufen, andernfalls wird beim Erstellen einer neuen Instanz ein Fehler gemeldet. Weil die Unterklasse kein eigenes This-Objekt hat, sondern das This-Objekt der übergeordneten Klasse erbt und es dann verarbeitet. Wenn die Supermethode nicht aufgerufen wird, kann die Unterklasse dieses Objekt nicht abrufen.
Vererbung in ES6
In traditionellem JS erfolgt das Generieren von Objekten durch Erstellen eines Konstruktors und anschließendes Definieren des generierten Objekts ist, Klasse. Objekte werden über das Schlüsselwort class definiert.
Klasse ist ein Schlüsselwort, Sprachzucker, damit Sie das erstellte Objekt klarer verstehen können.
Verwenden Sie den Attributkonstruktor, um die von der Steuermethode übergebenen Parameter zu erhalten Parameter standardmäßig
function parent(a,b){ this.a = a; this.b = b; }
Die Vererbung in ES6 basiert auf der Vererbung zwischen Klassen. Dies wird durch das Schlüsselwort „extends“ erreicht.
Aufrufen der übergeordneten Klasse durch Super-Instanziierung
parent.prototype.methods = function(){ return 'this is test methods'; } parent.prototype.attr = 'this is test attr‘;
Der obige Code ist ein einfacher Satz der ES6-Eltern-Kind-Klassenvererbung.
Ich glaube, Sie haben es gesehen, obwohl der offensichtliche Unterschied darin besteht, dass in ES6 die Supermethode die übergeordnete Komponente aktiviert, anstatt eine neue Instanziierung zu erstellen. Mit anderen Worten, das Instanzobjekt der übergeordneten Klasse wird zuerst erstellt und dann aufgerufen, um dies im Konstruktor der Unterklasse zu ändern, um das Prototypobjekt zu vervollständigen.
Zusammenfassung:Der größte Unterschied zwischen der ES5- und ES6-Vererbung ist: 1. ES5 erstellt zuerst die Unterklasse, instanziiert die übergeordnete Klasse und fügt sie der Unterklasse hinzu
2. ES6 erstellt zuerst die übergeordnete Klasse, Nach dem Zugriff auf das übergeordnete Element durch Aufrufen der Super-Methode in der instanziierten Teilmenge wird die Vererbung durch Modifizieren realisiert
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Vererbung in es5 und es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!