Während einer Codeüberprüfung sagte heute ein Kollege von mir etwas Interessantes:
prototypeist 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?)
implementsSchlüsselworts und der Schnittstellen (im Gegensatz zur Vererbung von state und Verhalten, das mit der Verwendung des extendsSchlüsselworts für Klassen eingeführt wurde, die eine Implementierung enthalten).
new, thisund prototypesind ein allzu großes Minenfeld für die gemeinsame Nutzung IMO.
prototypeist 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 verwendeninstanceofOperator in JavaScript:if (foo instanceof Foo) { ....