Saltar al contenido

Composición

JavaScript · Unidad 13: Herencia

Heredar dice "es un": un perro es un animal. Pero muchas veces la relación es "tiene un": un auto tiene un motor. Eso no se hereda. El auto guarda un objeto Motor en una propiedad, y así lo usa. A esto se le llama composición.

class Motor {
  constructor(hp) {
    this.hp = hp;
  }
  encender() {
    return "brrrum";
  }
}
class Auto {
  constructor(hp) {
    this.motor = new Motor(hp);
  }
}
const a = new Auto(120);
console.log(a.motor.hp);
console.log(a.motor.encender());

Imprime

120
brrrum

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Opción múltiple

    ¿En cuál par la relación es "tiene un" y no "es un"?

  2. 2. Predice la salida

    ¿Qué imprime este código?

  3. 3. Encuentra el bug

    Este programa debería imprimir "brrrum". ¿Qué línea tiene el error?

  4. 4. Completa el código

    Completa para que la bici avise usando su bocina.

  5. 5. Predice la salida

    Una playlist tiene canciones. ¿Qué imprime?

  6. 6. Opción múltiple

    Valeria escribió class Auto extends Motor. ¿Qué problema tiene?

  7. 7. Ordena las líneas

    El control remoto tiene una pila, que le llega al crearlo. Ordena el programa para que muestre la carga. Pila y el constructor caben en un renglón.

  8. 8. Predice la salida

    A la lámpara le cambian el foco. ¿Qué imprime?

  9. 9. Encuentra el caso que falla

    promedioEquipo(goles) ficha un Jugador por cada número del arreglo y regresa el promedio de goles del equipo, o 0 si no hay jugadores. ¿Con qué llamada falla?

  10. 10. Predice la salida

    Un equipo tiene jugadores, y uno es portero. ¿Qué imprime?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →