Building a Cash Register 5/7


#1

var cashRegister = {
total:0,
lastTransactionAmount:0,
//Dont forget to add your property
add: function(itemCost) {
this.total += itemCost;
this.lastTransactionAmount=this.itemCost;
},
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
voidLastTransaction:function(){
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();
cashRegister.scan('chocolate',3);
//Show the total bill
console.log('Your bill is '+cashRegister.total);

Help me to solve this????


#2

output: Your bill is NaN


#3

Take out your "this" from itemCost here:

Hope it helped!:smiley:


#4

It's always helpful if we can explain why?. In this case, itemCost is not an instance variable so is not in object context. It is merely a formal parameter, local only to the add() method.


#6

Output: Oops false. :confused: