ich diese Definition hier: https://medium.com/javascript-scene/10-interview-questions-every-javascript-developer-should-know-6fa6bdf5ad95#.y0nc8kx34Unterschied zwischen der klassischen und Prototypvererbung
Ist es nicht peinlich klingen für Sie? Macht diese Definition Sinn? Für mich gibt es in beiden Fällen einen Konstruktor (mit new kann man das zurückgegebene Objekt überschreiben) und in beiden Fällen gibt es eine Prototyp-Vererbung. Fehle ich etwas oder die obige Definition ist nicht wirklich genau?
* 3. Was ist der Unterschied zwischen klassischer Vererbung und prototypischer Vererbung?
Klassenvererbung: Instanzen erben von Klassen (wie ein Blueprint - eine Beschreibung der Klasse) und erstellen Unterklassenbeziehungen: hierarchische Klassentaxonomien. Instanzen werden typischerweise über Konstruktorfunktionen mit dem Schlüsselwort new
instanziiert. Die Klassenvererbung kann das Schlüsselwort class
von ES6 verwenden oder nicht.
Prototypische Vererbung: Instanzen erben direkt von anderen Objekten. Instanzen werden typischerweise über Factory-Funktionen oder Object.create()
instanziiert. Instanzen können aus vielen verschiedenen Objekten zusammengesetzt werden, für eine einfache selektive Vererbung ermöglicht. *
Das gar nicht richtig. Selbst wenn man die Syntax "class" in ES6 verwendet, ist es immer noch eine Prototyp-Vererbung. Der Unterschied besteht nicht in der verwendeten Deklarationssyntax, sondern darin, wie sie in der Praxis funktioniert. – jfriend00
Nun, es heißt "typisch". Es gibt keine klassische Vererbung in JS, nur die Syntax, die die prototypische Vererbung verbirgt. – MinusFour
Ich weiß richtig. Ich glaube, der Autor versteht nicht wirklich, wie JavaScript-Vererbung funktioniert und mischt es mit anderen typischen OO-Sprachkenntnissen, aber ich möchte sicher sein, dass ich nichts vermisse, bevor ich ihm die Schuld gebe. –