我在javascript中构建一个小的cashRegister并且遇到了我添加的方法的问题。似乎无法让它发挥作用。我的consol打印前两个语句但不做最后一个。对于出了什么问题的任何想法?
var cashRegister = {
total: 0,
add: function(itemCost) {
this.total += itemCost;
this.lastTransactionAmount = itemCost;
},
scan: function(item, quantity) {
switch (item) {
case "eggs":
this.add(0.98 * quantity);
break;
case "milk":
this.add(1.23 * quantity);
break;
}
},
deleteLastTransaction: function() {
this.total -= lastTransactionAmount;
}
};
cashRegister.scan("eggs", 4);
cashRegister.scan("eggs", 2);
cashRegister.scan("milk", 2);
document.write("Total amount is: " + cashRegister.total + "</br>" + "Last transaction amount: " + cashRegister.lastTransactionAmount);
cashRegister.deleteLastTransaction();
document.write("The total amount is now: " + cashRegister.total);
答案 0 :(得分:5)
没有变量lastTransactionAmount
。最后一个函数应该是:
deleteLastTransaction: function() {
if ('lastTransactionAmount' in this) {
this.total -= this.lastTransactionAmount;
}
}