Sistema de Produtos de E-commerce
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 54 de 56.
Desafio
Este é um sistema de produtos de uma loja online. Os produtos têm preços, e os produtos físicos (como laptops) calculam o frete com base no seu peso. Produtos digitais (como ebooks) teriam frete grátis.
Sua tarefa é completar os métodos que faltam no sistema de produtos:
1: Complete a classe Product em product.js:
- Adicione o método
getPrice()que retornathis.#price - Adicione o método
getDescription()que retorna${this.name} - ${this.#price}
2: Complete a classe PhysicalProduct em physicalProduct.js:
- Adicione o método
calculateShipping()que:- Calcula
this.weight * 0.5(50 centavos por libra) - Retorna o custo de frete
- Calcula
Experimente você mesmo
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()); // Deve mostrar: "Book - $20"
console.log(laptop.getDescription()); // Deve mostrar: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Deve mostrar: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Deve mostrar: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Deve mostrar: "1000"Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação12Getters e Setters
As Palavras-chave get e setPropriedades ComputadasValidação e Efeitos ColateraisDesafio de Revisão15Desafios Finais
Construtor de Personagens de JogoSistema de Produtos de E-commerceSistema de Gestão UniversitáriaSistema de Dispositivos de Casa Inteligente