Desafío de repaso
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 6 de 56.
Desafío
Desafío de repaso: Construye un termostato inteligente
Practica todo lo que has aprendido en este capítulo creando un objeto de termostato inteligente.
Tu tarea:
- Crea una función constructora llamada
Thermostatque reciba un parámetroroom - Dentro del constructor, establece estas propiedades usando
this:room(del parámetro)temperature(establecida en 22)isOn(establecida en true)
- Agrega estos métodos dentro del constructor usando
this:increaseTemp()- aumenta la temperatura en 1 gradodecreaseTemp()- disminuye la temperatura en 1 gradogetStatus()- devuelve: "[room] thermostat: [temperature]°C"
Pruébalo tú mismo
// TODO: Crea una función constructora llamada Thermostat que reciba un parámetro room
// TODO: Dentro del constructor, establece estas propiedades:
// - room (del parámetro)
// - temperature (establecida en 22)
// - isOn (establecida en true)
// TODO: Agrega un método llamado increaseTemp() que aumente la temperatura en 1 grado
// TODO: Agrega un método llamado decreaseTemp() que disminuya la temperatura en 1 grado
// TODO: Agrega un método llamado getStatus() que devuelva: "[room] thermostat: [temperature]°C"
// Prueba tu código - no modifiques esta parte
const livingRoom = new Thermostat("Living Room");
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.getStatus()); // Debería imprimir: "Living Room thermostat: 24°C"
const bedroom = new Thermostat("Bedroom");
bedroom.decreaseTemp();
bedroom.decreaseTemp();
console.log(bedroom.getStatus()); // Debería imprimir: "Bedroom thermostat: 20°C"
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso