Sistema de productos de E-commerce
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 54 de 56.
Desafío
Este es un sistema de productos de una tienda en línea. Los productos tienen precios, y los productos físicos (como las laptops) calculan el envío basándose en su peso. Los productos digitales (como los ebooks) tendrían envío gratuito.
Tu tarea es completar los métodos que faltan en el sistema de productos:
1: Completa la clase Product en product.js:
- Añade el método
getPrice()que devuelvathis.#price - Añade el método
getDescription()que devuelva${this.name} - ${this.#price}
2: Completa la clase PhysicalProduct en physicalProduct.js:
- Añade el método
calculateShipping()que:- Calcule
this.weight * 0.5(50 centavos por libra) - Devuelva el costo de envío
- Calcule
Pruébalo tú mismo
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()); // Debería mostrar: "Book - $20"
console.log(laptop.getDescription()); // Debería mostrar: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Debería mostrar: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Debería mostrar: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Debería mostrar: "1000"Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso12Getters y Setters
Las palabras clave get y setPropiedades computadasValidación y efectos secundariosDesafío de repaso15Desafíos finales
Creador de personajes de videojuegosSistema de productos de E-commerceSistema de gestión universitariaSistema de dispositivos para el hogar inteligente