Validierung der Buchautoren
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 52 von 56.
Aufgabe
Verbessern Sie den Konstruktor der Book-Klasse durch Hinzufügen einer Validierung. Derzeit akzeptiert Book jeden Wert für den Parameter author, aber er sollte nur eine Author-Instanz akzeptieren.
Ihre Aufgabe:
- Fügen Sie im Book-Konstruktor eine if-else-Prüfung hinzu
- Wenn der Autor gültig ist (eine Instanz der Author-Klasse), indem Sie
author instanceof Authorverwenden, setzen Siethis.#author = author - Andernfalls (Autor ist ungültig): Protokollieren Sie exakt
“Invalid author: must be Author instance”. Setzen Siethis.#author = null
Auf diese Weise sollte das Buch auch mit einem ungültigen Autor weiterhin 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 geräuschlos funktionieren)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Sollte ausgeben: "Author: J.K. Rowling"
// Ungültige Fälle (sollte Nachricht protokollieren, aber das Buch trotzdem 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: Vererbung14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit Komposition3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und Auszahlungen9Statische 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