Durante uma revisão de código hoje, um colega meu disse algo interessante:
prototype
só é útil quando você precisa de herança - e quando a herança é uma boa ideia ?
Pensei sobre isso e percebi que geralmente uso herança para contornar códigos mal projetados em primeiro lugar. O estilo OO moderno prefere composição a herança, mas não conheço nenhum idioma que tenha levado isso a sério e que realmente a imponha .
Existem linguagens de programação de uso geral com classes, objetos, métodos, interfaces e assim por diante, que não permitem a herança baseada em classe? (Se essa ideia não faz sentido, por que não?)
implements
palavra - chave e interfaces (em oposição à herança de estado e comportamento introduzido com o uso da extends
palavra-chave em classes contendo qualquer implementação).
new
, this
E prototype
são todos muito de um campo minado para uso comum IMO.
prototype
é útil para quando você possui métodos e propriedades públicos que devem ser compartilhados entre instâncias. Também é útil porque permite que você use corretamente oinstanceof
operador em JavaScript:if (foo instanceof Foo) { ...
.