Lors d'une revue de code aujourd'hui, un de mes collègues a dit quelque chose d'intéressant:
prototype
n'est utile que lorsque vous avez besoin d'héritage - et quand l'héritage est-il une bonne idée ?
J'y ai pensé et j'ai réalisé que j'utilisais généralement l'héritage pour contourner le code mal conçu au départ. Le style OO moderne préfère la composition à l'héritage, mais je ne connais aucun langage qui ait pris cela à cœur et qui le fasse réellement respecter .
Existe-t-il des langages de programmation à usage général avec des classes, des objets, des méthodes, des interfaces, etc., qui interdisent l'héritage basé sur les classes? (Si une telle idée n'a pas de sens, pourquoi pas?)
implements
mot - clé et les interfaces (par opposition à l'héritage d'état et comportement introduit avec l'utilisation du extends
mot - clé sur les classes contenant n'importe quelle implémentation).
new
, this
et prototype
sont trop d'un champ de mines pour une utilisation courante par l'OMI.
prototype
est également utile lorsque vous disposez de méthodes et de propriétés publiques qui doivent être partagées entre les instances. Il est également utile car il vous permet d'utiliser correctement l'instanceof
opérateur en JavaScript:if (foo instanceof Foo) { ...
.