System produktów e-commerce
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 54 z 56.
Wyzwanie
To system produktów sklepu internetowego. Produkty mają ceny, a produkty fizyczne (takie jak laptopy) obliczają koszt wysyłki na podstawie swojej wagi. Produkty cyfrowe (takie jak e-booki) miałyby darmową wysyłkę.
Twoim zadaniem jest uzupełnienie brakujących metod w systemie produktów:
1: Uzupełnij klasę Product w pliku product.js:
- Dodaj metodę
getPrice(), która zwracathis.#price - Dodaj metodę
getDescription(), która zwraca${this.name} - $${this.#price}
2: Uzupełnij klasę PhysicalProduct w pliku physicalProduct.js:
- Dodaj metodę
calculateShipping(), która:- Oblicza
this.weight * 0.5(50 centów za funt) - Zwraca koszt wysyłki
- Oblicza
Spróbuj swoich sił
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()); // Powinno wyświetlić: "Book - $20"
console.log(laptop.getDescription()); // Powinno wyświetlić: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Powinno wyświetlić: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Powinno wyświetlić: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Powinno wyświetlić: "1000"Wszystkie lekcje w sekcji Programowanie obiektowe
1Obiekty i słowo kluczowe this
Szybka powtórka: obiektyDodawanie metod do obiektówZrozumienie słowa kluczowego thisFunkcje konstruktoraSłowo kluczowe newWyzwanie podsumowujące7Dziedziczenie i słowo kluczowe extends
DziedziczenieRelacja „jest rodzajem”Słowo kluczowe extendsMetoda super()Dziedziczenie właściwości i metodWyzwanie podsumowujące10Polimorfizm
Czym jest polimorfizm?Nadpisywanie odziedziczonych metodUżywanie superWyzwanie podsumowujące13Kompozycja a dziedziczenie
Relacja „ma” a relacja „jest”Ograniczenia głębokiego dziedziczeniaTworzenie obiektów2Organizowanie kodu
Czym są moduły?Eksportowanie za pomocą exportImportowanie za pomocą importEksporty domyślne a nazwane5Enkapsulacja i dostęp
EnkapsulacjaPubliczne i prywatne pola klasyMetody prywatneWyzwanie podsumowujące8Organizowanie kodu OOP
Organizowanie klas w moduły11Projekt: Renderer kształtów
Konfiguracja: klasa Shape i eksportDziedziczenie klasy CircleNadpisywanie i metoda obliczania polaStatyczny licznik kształtów14System zarządzania biblioteką
Projektowanie bibliotekiKlasa Book z kompozycjąWalidacja autora książki9Metody i właściwości statyczne
Poziom klasy a poziom instancjiWłaściwości statyczneStatyczne metody pomocniczeWyzwanie podsumowujące12Gettery i settery
Słowa kluczowe get i setWłaściwości obliczaneWalidacja i efekty uboczneWyzwanie podsumowujące15Wyzwania końcowe
Kreator postaci do grySystem produktów e-commerceSystem zarządzania uczelniąSystem urządzeń inteligentnego domuPoćwicz samodzielnie: Kompilator JavaScript online