Sistema di prodotti per e-commerce
Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 54 di 56.
Sfida
Questo è un sistema di prodotti per un negozio online. I prodotti hanno prezzi e i prodotti fisici (come i laptop) calcolano le spese di spedizione in base al loro peso. I prodotti digitali (come gli ebook) avrebbero la spedizione gratuita.
Il tuo compito è completare i metodi mancanti nel sistema di prodotti:
1: Completa la classe Product in product.js:
- Aggiungi il metodo
getPrice()che restituiscethis.#price - Aggiungi il metodo
getDescription()che restituisce${this.name} - $${this.#price}
2: Completa la classe PhysicalProduct in physicalProduct.js:
- Aggiungi il metodo
calculateShipping()che:- Calcola
this.weight * 0.5(50 centesimi per libbra) - Restituisce il costo di spedizione
- Calcola
Provalo tu
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()); // Dovrebbe mostrare: "Book - $20"
console.log(laptop.getDescription()); // Dovrebbe mostrare: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Dovrebbe mostrare: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Dovrebbe mostrare: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Dovrebbe mostrare: "1000"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 libro9Metodi e proprietà statici
A livello di classe o di istanzaProprietà staticheMetodi statici di utilitàSfida di riepilogo12Getter e Setter
Le parole chiave get e setProprietà calcolateValidazione ed effetti collateraliSfida di riepilogo15Sfide finali
Creazione di personaggi di giocoSistema di prodotti per e-commerceSistema di gestione universitariaSistema di dispositivi per la casa intelligenteEsercitati da solo: Compilatore JavaScript online