Avatar ·

Wie funktioniert .prototype in JavaScript? Erklären Sie anhand von Beispielen

Hallo zusammen! Ich habe angefangen, JavaScript zu lernen, und komme mit Prototypen nicht klar. Ich habe die Dokumentation gelesen, Videos angeschaut, aber ich bin immer noch verwirrt. Hier ist mein Code: ```javascript function Animal(name) { this.name = name; } Animal.prototype.sayHi = function() { console.log('Hallo, ich bin ' + this.name); }; let cat = new Animal('Barsik'); cat.sayHi(); // "Hallo, ich bin Barsik" ``` Ich verstehe, dass `sayHi` bei allen Objekten erscheint, die mit `new Animal` erstellt wurden. Aber wozu braucht man überhaupt `.prototype`? Warum kann man die Methode nicht einfach direkt in den Konstruktor einfügen? ```javascript function Animal(name) { this.name = name; this.sayHi = function() { console.log('Hallo, ich bin ' + this.name); }; } ``` Was ist der Unterschied? Und was ist `__proto__`? Ich habe gesehen, dass manchmal dieses und manchmal `.prototype` verwendet wird. Ist das dasselbe? Außerdem verwirrt mich die Prototypenkette. Wenn ich `cat.toString()` schreibe, woher kommt diese Methode, wenn ich sie nicht definiert habe? Und wie funktioniert `Object.create(