Überschreibende Methoden in Javascript

Ich würde gerne wissen, was der Unterschied zwischen übergeordneten Methoden mit Prototypen und ohne Prototypen ist. Erwägen:

Beispiel 1:

function Animal() {
    this.sleep = function () {
        alert("animal sleeping");
    };

    this.eat = function () {
        alert("animal eating");
    };
}

function Dog() {
    this.eat = function () {
        alert("Dog eating");
    };
}

Dog.prototype = new Animal;

var dog = new Dog;

dog.eat();

Beispiel 2:

function Animal() { }

function Dog() { }

Animal.prototype.sleep = function () {
    alert("animal sleeping");
};

Animal.prototype.eat = function () {
    alert("animal eating");
};

Dog.prototype = new Animal;

Dog.prototype.eat = function () {
    alert("Dog eating");
};

var dog = new Dog;

dog.eat();

Ich bin der Meinung, dass beide Beispiele den gleichen Effekt haben wie dieDog Klasse überschreibt die Eat-Methode derAnimal Klasse. Oder passiert etwas anderes?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage