7.You Deserved It!


Console: ReferenceError: applyStaffDiscount is not defined
Popup window: Oops, try again. It looks like you have an error in your code! Check the error message for more details: ReferenceError: applyStaffDiscount is not defined

function StaffMember(name,discountPercent){
    this.name = name;
    this.discountPercent = discountPercent;

var sally = new StaffMember("Sally",5);
var bob = new StaffMember("Bob",10);

// Create yourself again as 'me' with a staff discount of 20%
var me = new StaffMember("me",20);

var cashRegister = {
    lastTransactionAmount: 0,
    add: function(itemCost){
        this.total += (itemCost || 0);
        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;
        case "magazine": this.add(4.99 * quantity); break;
        case "chocolate": this.add(0.45 * quantity); break;
        return true;
    voidLastTransaction : function(){
        this.total -= this.lastTransactionAmount;
        this.lastTransactionAmount = 0;
    // Create a new method applyStaffDiscount here
    applyStaffDiscount: function(employee) {
        this.total -= this.total * (employee.discountPercent/100);

// Apply your staff discount by passing the 'me' object 
// to applyStaffDiscount

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

what is wrong. I am confused


applyStaffDiscount is a method of cashRegister class, just like scan, so you need cashRegister.applyStaffDiscount() just like you did cashRegister.scan()

given the methods are part of the class, you need to specify the class


Thanks a lot.
What a stupid error


once you see it, it is obvious, the tricky bit is to see it. Glad i could be of help


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.