JSFiddle - React, Tailwind, and code Playground

by Fabian Allel

JavaScript

class Animal {
	constructor({raza="no se sabe", peso}){
    if(typeof arguments[0]=== "string"){
    	this.raza = arguments[0];
      this.peso = arguments[1];
    }else{
      this.raza = raza;
      this.peso = peso;    
    }
  }
  obtenerRaza(){
  	return this.raza;
  }
}

class Humano extends Animal{
 constructor(raza, peso){
 	super(raza, peso);
 }
}

var perro = new Animal({raza:"Pastor Alemán", peso:20});
var perro2 = new Animal({raza:undefined, peso:20});

var humano2 = new Humano({raza:undefined, peso:20});

var humano = new Animal("Negro", 80);

console.log(perro.obtenerRaza());
console.log(perro2.obtenerRaza());

console.log(perro instanceof Animal);
console.log(humano2 instanceof Animal);
console.log(humano2 instanceof Humano);

console.log(humano2 instanceof Object);

console.log(typeof humano2);
console.log(typeof Animal);

console.log(humano2.__proto__);

console.log(Animal.prototype);