Während einer Codeüberprüfung sagte heute ein Kollege von mir etwas Interessantes:
prototype
ist nur nützlich, wenn Sie Vererbung benötigen - und wann ist Vererbung jemals eine gute Idee ?
Ich habe darüber nachgedacht und festgestellt, dass ich normalerweise Vererbung verwende, um Code zu umgehen, der von Anfang an schlecht entworfen wurde. Der moderne OO-Stil zieht die Komposition der Vererbung vor, aber ich kenne keine Sprachen, die sich das zu Herzen genommen und es tatsächlich durchgesetzt haben.
Gibt es universelle Programmiersprachen mit Klassen, Objekten, Methoden, Schnittstellen usw., die eine klassenbasierte Vererbung nicht zulassen? (Wenn eine solche Idee keinen Sinn ergibt, warum nicht?)
implements
Schlüsselworts und der Schnittstellen (im Gegensatz zur Vererbung von state und Verhalten, das mit der Verwendung des extends
Schlüsselworts für Klassen eingeführt wurde, die eine Implementierung enthalten).
new
, this
und prototype
sind ein allzu großes Minenfeld für die gemeinsame Nutzung IMO.
prototype
ist auch nützlich, wenn Sie über öffentliche Methoden und Eigenschaften verfügen, die von Instanzen gemeinsam genutzt werden sollen. Es ist auch nützlich , weil es Ihnen richtig die verwendeninstanceof
Operator in JavaScript:if (foo instanceof Foo) { ...
.