【发布时间】:2018-11-16 15:39:52
【问题描述】:
我正在使用以下说明编写代码:
创建一个名为 ShoppingCart 的类。
创建一个没有参数的构造函数并将total属性设置为零,并初始化一个名为items的空dict属性。
创建需要 item_name、数量和价格参数的方法 add_item。此方法应将已添加项目的成本添加到总计的当前值中。它还应该在 items dict 中添加一个条目,以便 key 是 item_name 并且 value 是 item 的数量。
创建一个方法 remove_item,它需要与 add_item 类似的参数。它应该删除已添加到购物车且不需要的项目。此方法应从当前总数中扣除这些项目的成本,并相应地更新项目字典。如果要移除的商品数量超过购物车中的当前数量,则假定该商品的所有条目都将被移除。
创建一个方法 checkout 接受 cash_paid 并从付款中返回余额值。如果 cash_paid 不足以支付总额,则返回 Cashpaid not enough。
创建一个名为 Shop 的类,该类具有一个构造函数,该构造函数将一个名为 quantity 的属性初始化为 100。
确保 Shop 继承自 ShoppingCart。
在 Shop 类中,重写 remove_item 方法,这样在不带参数的情况下调用 Shop 的 remove_item 会将数量减一。
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 中的 OOP 新手。提前致谢。
【问题讨论】:
-
为什么要创建一个函数ShoppingCart?是不是需要创建一个类,就像您为 Shop 所做的那样?
-
@baao 我创建了一个构造函数。构造函数本身应该是一个类吗?
-
您能更具体地谈谈您的问题吗? 没有做到这一点对我没有多大帮助......
-
当你说“我的代码没有起到作用”时,你能更具体一点吗?它现在在做什么,你期望它做什么?如果有的话,也分享错误消息
-
你要求的第一句话是创建一个名为ShoppinCart的类
标签: javascript node.js reactjs oop