1

我正在编写一个 codecademy.com 教程,我们正在构建一个收银机。我应该制作必要的工具来取消收银机的最后一笔交易。因此,我补充说

  1. 一个名为 lastTransactionAmount 的属性
  2. 函数“添加”的另一行代码以设置最后一笔交易金额
  3. 一个函数 voidLastTransaction 金额,从总金额中减去最后一笔交易
  4. 然后我在底部测试了 void last transaction 函数(我希望这四个巧克力作废
  5. 然后我试着加了三块巧克力

当我运行代码时,我得到

你的账单是 NaN

有人可以解释我做错了什么吗?

var cashRegister = {
    total:0,
    //Dont forget to add your property
    lastTransactionAmount: 0,         //this is a property I added

    add: function(itemCost) {
        this.total +=  itemCost;
        this.lastTransactionAmount = this.itemCost; //I added this to save 
    },
    scan: function(item,quantity) {
        switch (item) {
        case "eggs": this.add(0.98 * quantity); break;
        case "milk": this.add(1.23 * quantity); break;
        case "magazine": this.add(4.99 * quantity); break;
        case "chocolate": this.add(0.45 * quantity); break;
        }
        return true;
    },
    //Add the voidLastTransaction Method here // I made this function to void l
    voidLastTransaction: function() {
        this.total = this.total - this.lastTransactionAmount; 
    }
};

cashRegister.scan('eggs',1);
cashRegister.scan('milk',1);
cashRegister.scan('magazine',1);
cashRegister.scan('chocolate',4);

//Void the last transaction and then add 3 instead
cashRegister.voidLastTransaction();              //I'm voiding last transaction
cashRegister.scan('chocolate', 3);             //trying to add 3 (instead of 4)chocolate

//Show the total bill
console.log('Your bill is '+cashRegister.total);
4

1 回答 1

5

中没有财产itemCostcashRegister它应该是this.lastTransactionAmount = itemCost;

于 2012-08-28T17:48:22.153 回答