Validazione dell'autore del libro
Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 52 di 56.
Sfida
Migliora il costruttore della classe Book aggiungendo la convalida. Attualmente, Book accetta qualsiasi valore per il parametro author, ma dovrebbe accettare solo un'istanza di Author.
Il tuo compito:
- Nel costruttore di Book, aggiungi un controllo if-else
- Se l'autore è valido (un'istanza della classe Author) usando
author instanceof Author, impostathis.#author = author - Altrimenti (l'autore non è valido): registra esattamente
“Invalid author: must be Author instance”. Impostathis.#author = null
In questo modo, il libro dovrebbe essere creato comunque anche se l'autore non è valido.
Provalo tu
import { Author } from './Author.js';
import { Book } from './Book.js';
// Test
const rowling = new Author('J.K. Rowling');
// Caso valido (dovrebbe funzionare senza mostrare messaggi)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Dovrebbe mostrare: "Author: J.K. Rowling"
// Casi non validi (dovrebbero mostrare un messaggio ma creare comunque il libro)
const invalid1 = new Book('Fake Book', 'String Author');Tutte le lezioni di Programmazione orientata agli oggetti
1Oggetti e la keyword this
Ripasso rapido: oggettiAggiungere metodi agli oggettiCapire la keyword thisFunzioni costruttriciLa keyword newSfida di ripasso7Ereditarietà e parola chiave extends
EreditarietàLa relazione «è un»La parola chiave extendsIl metodo super()Ereditare proprietà e metodiSfida di ripasso13Composizione vs. ereditarietà
«Ha-un» vs. «è-un»I limiti dell’ereditarietà profondaCostruire oggetti2Organizzare il codice
Cosa sono i moduli?Esportare con exportImportare con importExport predefiniti vs. export nominati5Incapsulamento e accesso
IncapsulamentoCampi di classe pubblici e privatiMetodi privatiSfida di riepilogo8Organizzare il codice OOP
Organizzare le classi in moduli11Progetto: Un renderizzatore di forme
Configurazione: classe Shape ed esportazioneEreditarietà della classe CircleOverride e metodo areaContatore statico di Shape14Sistema di gestione della biblioteca
Progettare la bibliotecaClasse Book con composizioneValidazione dell'autore del libroEsercitati da solo: Compilatore JavaScript online