Ich höre immer wieder, dass einer der Gründe, weshalb JavaScript eine so überlegene Sprache ist, darin liegt, dass es keine Klassen hat. Stattdessen hat es dieses magische Ding namens Prototypische Vererbung.Wie ist Konstruktorfunktion + Prototyp nicht das Gleiche wie eine Klasse?
Korrigieren Sie mich Wenn ich falsch liege, aber von dem, was ich verstehe, Object.prototype
und Object.prototype.constructor
(die einige native Code ausführt) sind die beiden grundlegenden Elemente in Javascript. Wie unterscheidet sich das von einer Klasse?
Was muss jede Funktion haben .prototype
, wenn sie keinen "Blueprint" für die Objekterstellung haben, wenn sie mit dem Operator new
aufgerufen wird?
Mögliches Duplikat von [prototypbasierte gegen klassenbasierte Vererbung] (http://stackoverflow.com/questions/816071/prototype-based-vs-class-based-inheritance) –
Nette Frage. Sie beschreiben genau, wie TypeScript ES6-Klassen übernimmt und sie zu ES5 kompiliert. Sie sind unsere beste Wette für jetzt. Wenn Sie auf die Ausgabe JS-Klassen schauen, werden Konstruktorobjekte zu "object.prototype.something" – BenRacicot
Wo hören Sie das? Das sind bizarre Behauptungen. –