Durante una revisión de código hoy, un colega mío dijo algo interesante:
prototype
solo 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?)
implements
palabra clave y las interfaces (en oposición a la herencia de estado y comportamiento introducido con el uso de la extends
palabra clave en clases que contienen cualquier implementación).
new
, this
y prototype
son demasiado de un campo de minas para uso común IMO.
prototype
tambié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 elinstanceof
operador en JavaScript:if (foo instanceof Foo) { ...
.