Vorrei sapere qual è la differenza tra i metodi di sovrascrittura con prototipi e senza prototipi. Considerate:Metodi di sovrascrittura in Javascript
Esempio 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();
Esempio 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();
mi sento entrambi gli esempi producono lo stesso effetto che la classe Dog
è l'override del metodo mangiare il Animal
classe. O c'è qualcosa di diverso che succede?
Si dovrebbe usare la parola chiave 'this' quando si definiscono le proprietà di un oggetto nel suo costruttore. – ShuklaSannidhya
@Sann mi dispiace aver perso questa parola chiave. Modificato la domanda ora. – codingsplash
È quasi sempre una buona idea mettere i metodi sul prototipo come se fossero condivisi tra tutte le istanze. Inserendoli nel tuo costruttore li copia in tutte le istanze e questo consuma più memoria. – Rik