Avatar ·

Comment fonctionne .prototype en JavaScript ? Expliquez avec des exemples

Bonjour à tous ! J'ai commencé à étudier JavaScript et je n'arrive pas à comprendre les prototypes. J'ai lu la documentation, regardé des vidéos, mais je suis toujours confus.\n\nVoici le code que j'ai :\n\n```javascript\nfunction Animal(name) {\n this.name = name;\n}\n\nAnimal.prototype.sayHi = function() {\n console.log('Bonjour, je suis ' + this.name);\n};\n\nlet cat = new Animal('Barsik');\ncat.sayHi(); // "Bonjour, je suis Barsik"\n```\n\nJe comprends que `sayHi` apparaît sur tous les objets créés avec `new Animal`. Mais à quoi sert `.prototype` ? Pourquoi ne pas simplement ajouter la méthode directement dans le constructeur ?\n\n```javascript\nfunction Animal(name) {\n this.name = name;\n this.sayHi = function() {\n console.log('Bonjour, je suis ' + this.name);\n };\n}\n```\n\nQuelle est la différence ? Et qu'est-ce que `__proto__` ? J'ai vu que parfois on utilise