JavaScript > Herencia

by academiax

JavaScript

function Animal(nombre) {
   this.nombre = nombre;
}

// creo un método para Animal
Animal.prototype.obtenerNombre = function() {
    return this.nombre;
}

function Mamifero(nombre, tienePelo) {
    // hereda la propiedad nombre de Animal
    Animal.call(this, nombre);
    this.tienePelo = tienePelo;
}
// hereda los métodos de Animal
Mamifero.prototype = Object.create(Animal.prototype);

// creo un método para Mamifero
Mamifero.prototype.obtenerTienePelo = function() {
    return this.tienePelo;
}

function Perro(nombre, raza) {
    // hereda la propiedad nombre de Mamīfero
    Mamifero.call(this, nombre, true);
    this.raza = raza;
}

// hereda los métodos de Mamifero
Perro.prototype = Object.create(Mamifero.prototype);

// creo un método para Perro
Perro.prototype.obtenerRaza = function() {
    return this.raza;
}

var firulais = new Perro('Firulais', 'Labrador');

console.log(firulais.obtenerNombre());  // 'Firulais'
console.log(firulais.obtenerTienePelo()); // true
console.log(firulais.obtenerRaza()); // 'Labrador'