Sto cercando di cogliere OOP con JavaScript con esempi molto semplici.Esempio di prototipo ed ereditarietà JavaScript per animali
Il mio obiettivo è creare una gerarchia di classi con Animali come esempio.
In una gerarchia animale semplificato potremmo vedere qualcosa di simile:
Animal
/\
Mammal Reptile
/\ /\
Human Dog Snake Alligator
voglio prendere questo esempio e creare classi all'interno di JavaScript. Ecco il mio tentativo. Cosa posso fare per migliorarlo?
function Animal(name) {
this.name = name;
}
function Mammal() {
this.hasHair = true;
this.numEyes = 2;
this.blood = "warm";
}
function Dog(breed) {
this.breed = breed;
this.numLegs = 4;
}
Dog.prototype = new Animal("Fido");
Dog.prototype = new Mammal();
var Fido = new Dog("Lab");
console.log(Fido.name); // returns undefined when i want it to return Fido
console.log(Fido.hasHair); // returns true as expected
console.log(Fido.breed); // returns lab as expected
Quello che vorrei fare è di avere cane estendere le proprietà di mammiferi e degli animali dal momento che è al tempo stesso, ma non funziona correttamente. Sto assumendo perché sto chiamando dog.prototype = new Mammal() dopo new Animal() che sta sovrascrivendo la connessione.
Come scrivere correttamente queste classi in modo da poter richiamare tutte le proprietà delle loro classi padre?
Grazie.
E 'questo più o meno quello che vuoi? http://jsfiddle.net/294d88su/ – aroth