3.Short-Term Memory


#1

var cashRegister = {
    total: 0,
    
    add: function(itemCost){
        this.total += this.itemCost;    
    },
    
    scan: function (item) {
        switch (item) { 
        case "eggs": 
            this.add(0.98); 
            break;
        
        case "milk": 
            this.add(1.23); 
            break;
        
        case 'magazine':
            this.add(4.99);
            break;
        
        case 'chocolate':
            this.add(0.45);
            break;
        }
        return true;
    }
};

cashRegister.scan('eggs');
cashRegister.scan('eggs');
cashRegister.scan('magazine');
cashRegister.scan('magazine');
cashRegister.scan('magazine');

console.log('Your bill is ' +cashRegister.total);

Returns "Calling cashRegister.add(3.2) set the cashRegister.total to NaN instead of 3.2"
whats wrong???


#2

Your problem is on this line,

this.total += this.itemCost;

should just be,

this.total += itemCost;

Because itemCost is just a parameter, whereas " this.total" "owns" the already defined total variable.


#3

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