E-Commerce Produktsystem
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 54 von 56.
Aufgabe
Dies ist ein Produktsystem für einen Online-Shop. Produkte haben Preise, und physische Produkte (wie Laptops) berechnen den Versand basierend auf ihrem Gewicht. Digitale Produkte (wie E-Books) hätten einen kostenlosen Versand.
Ihre Aufgabe ist es, die fehlenden Methoden im Produktsystem zu vervollständigen:
1: Vervollständigen Sie die Klasse Product in product.js:
- Fügen Sie die Methode
getPrice()hinzu, diethis.#pricezurückgibt - Fügen Sie die Methode
getDescription()hinzu, die${this.name} - ${this.#price}zurückgibt
2: Vervollständigen Sie die Klasse PhysicalProduct in physicalProduct.js:
- Fügen Sie die Methode
calculateShipping()hinzu, die:this.weight * 0.5berechnet (50 Cent pro Pfund)- Die Versandkosten zurückgibt
Probier es selbst
import { Product } from './product.js';
import { PhysicalProduct } from './physicalProduct.js';
const book = new Product('Book', 20);
const laptop = new PhysicalProduct('Laptop', 1000, 5);
console.log(book.getDescription()); // Sollte anzeigen: "Book - $20"
console.log(laptop.getDescription()); // Sollte anzeigen: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Sollte anzeigen: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Sollte anzeigen: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Sollte anzeigen: "1000"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