对象中的特定方法不起作用

时间:2014-10-12 09:22:41

标签: javascript

我在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);

1 个答案:

答案 0 :(得分:5)

没有变量lastTransactionAmount。最后一个函数应该是:

deleteLastTransaction: function() {
    if ('lastTransactionAmount' in this) {
        this.total -= this.lastTransactionAmount;
    }
}