Система товаров для E-commerce
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 54 из 56.
Задание
Это система товаров для интернет-магазина. У товаров есть цены, а для физических товаров (например, ноутбуков) стоимость доставки рассчитывается на основе их веса. Цифровые товары (например, электронные книги) доставляются бесплатно.
Ваша задача — реализовать недостающие методы в системе товаров:
1: Доработайте класс Product в файле product.js:
- Добавьте метод
getPrice(), который возвращаетthis.#price - Добавьте метод
getDescription(), который возвращает${this.name} - ${this.#price}
2: Доработайте класс PhysicalProduct в файле physicalProduct.js:
- Добавьте метод
calculateShipping(), который:- Вычисляет
this.weight * 0.5(50 центов за фунт) - Возвращает стоимость доставки
- Вычисляет
Попробуйте сами
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()); // Должно вывести: "Book - $20"
console.log(laptop.getDescription()); // Должно вывести: "Laptop - $1000 (5 lbs)"
console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Должно вывести: "Shipping cost for laptop: $2.5"
console.log(`Book price: $${book.getPrice()}`); // Должно вывести: "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Должно вывести: "1000"Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление12Геттеры и сеттеры
Ключевые слова get и setВычисляемые свойстваВалидация и побочные эффектыИтоговое задание15Финальные испытания
Конструктор игровых персонажейСистема товаров для E-commerceСистема управления университетомСистема устройств умного дома