SPOILERS
.
.
.
.
.
.
.
.
.
.
.
.
Este ejercicio ha sido el mas "raro"
Primero un error de tipeo creo en decir:
La clase base será Animal con las propiedades name, age y species y un método getInfo
cuando en los ejemplos y test esta “especie”
{
name: "pepe",
age: 1,
specie: "bird",
}
luego en el test de Dog es raro, la parte del constructor, specie, siempre toma un valor unico que es “dog” y luego breed da undefined pero si cambias la posicion de breed en el lugar donde estaba especie,
breed toma el valor q esperan los test, a lo mejor es un error mio de compresion lectora, pero bueno.
mi codigo:
export class Animal {
constructor(name, age, specie) {
this.name = name;
this.age = age;
this.species = specie;
}
getInfo() {
return {
"name": this.name,
"age": this.age,
"specie": this.species
}
}
}
export class Mammal extends Animal {
constructor(name, age, specie, hasFur) {
super(name, age, specie);
this.hasFur = hasFur;
}
getInfo() {
const { name, age, specie } = super.getInfo()
return { name, age, specie, "hasFur": this.hasFur }
}
}
export class Dog extends Mammal {
constructor(name, age, breed, hasFur) {
super(name, age, "dog", hasFur);
this.breed = breed;
}
getInfo() {
const { name, age, specie, hasFur } = super.getInfo()
return { name, age, specie, hasFur, "breed": this.breed }
}
bark() {
return "woof!"
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?