Durante una revisión de código hoy, un colega mío dijo algo interesante:
prototypesolo es útil cuando necesita herencia, y ¿ cuándo es una buena idea la herencia ?
Pensé en esto y me di cuenta de que generalmente uso la herencia para evitar el código mal diseñado en primer lugar. El estilo OO moderno prefiere la composición sobre la herencia, pero no conozco ningún idioma que haya tomado esto en serio y realmente lo imponga .
¿Hay algún lenguaje de programación de propósito general con clases, objetos, métodos, interfaces, etc., que no permita la herencia basada en clases? (Si tal idea no tiene sentido, ¿por qué no?)
implementspalabra clave y las interfaces (en oposición a la herencia de estado y comportamiento introducido con el uso de la extendspalabra clave en clases que contienen cualquier implementación).
new, thisy prototypeson demasiado de un campo de minas para uso común IMO.
prototypetambién es útil para cuando tiene métodos públicos y propiedades que deben compartirse entre instancias. También es útil porque permite utilizar adecuadamente elinstanceofoperador en JavaScript:if (foo instanceof Foo) { ....