Validierung der Buchautoren
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 52 von 56.
Aufgabe
Verbessere den Book-Constructor der Class Book durch Hinzufügen einer Validierung. Derzeit akzeptiert das Book jeden Wert für den author-Parameter, aber es sollte nur eine Author-Instanz akzeptieren.
Deine Aufgabe:
- Füge im Book-Constructor eine if-else-Prüfung hinzu
- Wenn der
authorgültig ist (eine Instanz der ClassAuthor) unter Verwendung vonauthor instanceof Author, setzethis.#author = author - Andernfalls (
authorist ungültig): Protokolliere genau“Invalid author: must be Author instance”. Setzethis.#author = null
Auf diese Weise sollte das Book selbst bei einem ungültigen author trotzdem erstellt werden.
Probier es selbst
import { Author } from './Author.js';
import { Book } from './Book.js';
// Tests
const rowling = new Author('J.K. Rowling');
// Gültiger Fall (sollte stillschweigend funktionieren)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Should output: "Author: J.K. Rowling"
// Ungültige Fälle (sollte Nachricht loggen, aber trotzdem Buch erstellen)
const invalid1 = new Book('Fake Book', 'String Author');Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: VererbungOverriding & Area-MethodeStatischer Shape-Zähler14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit KompositionValidierung der Buchautoren3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und AuszahlungenKontostand als privates Feld9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-Gerätesystem