Ich würde gerne wissen, was ist der Unterschied zwischen überschreiben Methoden mit Prototypen und ohne Prototypen. Bedenken Sie:Overriding Methoden in Javascript
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 fühle mich beide Beispiele die gleiche Wirkung erzeugen, die die Dog
Klasse überschreibt die Methode eat des Animal
Klasse. Oder passiert etwas anderes?
Sie sollten 'this' Schlüsselwort verwenden, wenn Sie die Eigenschaften eines Objekts in seinem Konstruktor definieren. – ShuklaSannidhya
@Sann Entschuldigung verpasste das Schlüsselwort this. Beantwortete die Frage jetzt. – codingsplash
Es ist fast immer eine gute Idee, Methoden auf den Prototyp zu setzen, da sie dann unter allen Instanzen geteilt werden. Wenn Sie sie in Ihren Konstruktor einfügen, werden sie über alle Instanzen hinweg kopiert, wodurch mehr Speicher belegt wird. – Rik