Validación del Autor del Libro
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 52 de 56.
Desafío
Mejora el constructor de la clase Book agregando validación. Actualmente, el Book acepta cualquier valor para el parámetro author, pero solo debería aceptar una instancia de Author.
Tu tarea:
- En el constructor de Book, agrega una comprobación if-else
- Si el autor es válido (una instancia de la clase Author) usando
author instanceof Author, establecethis.#author = author - De lo contrario (si el autor no es válido): Registra en la consola exactamente
“Invalid author: must be Author instance”. Establecethis.#author = null
De esta manera, el libro aún debería crearse incluso con un autor no válido.
Pruébalo tú mismo
import { Author } from './Author.js';
import { Book } from './Book.js';
// Pruebas
const rowling = new Author('J.K. Rowling');
// Caso válido (debería funcionar en silencio)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Should output: "Author: J.K. Rowling"
// Casos inválidos (debería registrar un mensaje pero aún así crear el libro)
const invalid1 = new Book('Fake Book', 'String Author');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írculoSobrescritura y método de áreaContador de figuras estático14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con ComposiciónValidación del Autor del Libro9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso