2014-10-12 33 views
1

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

回答

5

沒有變數lastTransactionAmount。最後一個功能應該是:

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

+1,只是打敗了我。 – Scimonster 2014-10-12 09:27:32

+0

這是一個很好的結果..;)+1 – 2014-10-12 09:27:41