Lors d'une revue de code aujourd'hui, un de mes collègues a dit quelque chose d'intéressant:
prototypen'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?)
implementsmot - clé et les interfaces (par opposition à l'héritage d'état et comportement introduit avec l'utilisation du extendsmot - clé sur les classes contenant n'importe quelle implémentation).
new, thiset prototypesont trop d'un champ de mines pour une utilisation courante par l'OMI.
prototypeest é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'instanceofopérateur en JavaScript:if (foo instanceof Foo) { ....