Я работаю над кодом со следующими инструкциями:
Создайте класс с именем ShoppingCart.
Создайте конструктор, который не имеет аргументов, устанавливает нулевой атрибут total и инициализируетпустой атрибут dict с именем items.
Создайте метод add_item, который требует аргументы item_name, количество и цена.Этот метод должен добавить стоимость добавленных предметов к текущей стоимости итога.Также следует добавить запись к элементу dict, в которой ключом является item_name, а значением - количество элемента.
Создайте метод remove_item, для которого требуются аргументы, аналогичные add_item.Следует удалить элементы, которые были добавлены в корзину и не являются обязательными.Этот метод должен вычитать стоимость этих предметов из текущего итога, а также обновлять эти элементы соответственно.Если количество удаляемых элементов превышает текущее количество в корзине, предположим, что все записи этого элемента должны быть удалены.
Создайте метод извлечения, который принимает cash_paid и возвращает значение баланса из платежа.Если cash_paid недостаточно, чтобы покрыть сумму, верните, что оплаченных денежных средств недостаточно.
Создайте класс с именем Shop, в котором есть конструктор, который инициализирует атрибут с именем количество в 100.
Убедитесь, что Shop наследуетfrom ShoppingCart.
В классе Shop переопределите метод remove_item, чтобы при вызове метода remove_item Shop без аргументов количество уменьшилось на единицу.
JavaScript Используйте верблюжий регистр для имен методов вашего класса, например,
add_item
становится
addItem
Единственная проблема заключается в том, что мой код, показанный ниже, не работает:
function ShoppingCart(){
this.total = 0;
this.items = {};
this.addItem = function(itemName, quantity, price){
this.total = this.total + price;
this.items[itemName] = quantity;
//console.log(this.items);
}
this.removeItem = function(itemName, quantity, price){
delete this.items['Mango'];
// this.total = this.total - price;
if (quantity > Object.keys(this.items).length){
this.items = {};
}
//console.log(price);
//console.log(this.total);
}
this.checkout = function(cashPaid){
if (cashPaid >= this.total){
return cashPaid - this.total;
}
return 'Cash paid not enough';
}
}
class Shop extends ShoppingCart {
constructor(quantity){
super(quantity);
this.quantity = 100;
}
removeItem(){
this.quantity--;
}
}
Можете ли вы помочьнаписать код, который удовлетворяет всем условиям?
Я почти уверен, что мой код беспорядок, так как я новичок в ООП в JS.Заранее спасибо.