我正在学习codeacademy javascript代码,我真的不明白为什么它会给我这个错误:
TypeError:无法获取属性' magazine'未定义或空引用
最后,使用扫描方法购买2个鸡蛋和3个杂志。
var cashRegister = {
total: 0,
add: function(itemCost) {
itemCost += total
},
scan: function(item) {
switch (item) {
case "eggs":
this.add(0.98);
break;
case "milk":
this.add(1.23);
break;
//Add other 2 items here
case 'magazine':
this.add(4.99);
break;
case 'chocolate':
this.add(0.45);
break;
}
return true;
}
};
cashRegister.sacan['eggs', 'eggs', 'magazine', 'magazine']
console.log('Your bill is ' + cashRegister.total);
答案 0 :(得分:2)
看起来你的大部分位都是正确的,但你有一个拼写错误,并且在某些方面错误地使用了扫描功能。
Javascript中的函数是带括号的caleld,而不是括号中的括号。此外,scan()函数将单个项目作为参数,而不是数组(或多个参数)。
所以要扫描一个'egg',代码看起来像这样:
cashRegister.scan('eggs');
这应该让你回到正轨。
答案 1 :(得分:0)
您的代码有很多错误。如果您想获得总价值,请尝试以下代码。
This is a开始学习javascript的好地方。
<script>
var cashRegister = {
total: 0,
add: function(itemCost) {
this.total += itemCost;
},
scan: function(item) {
switch (item) {
case "eggs":
this.add(0.98);
break;
case "milk":
this.add(1.23);
break;
//Add other 2 items here
case 'magazine':
this.add(4.99);
break;
case 'chocolate':
this.add(0.45);
break;
}
}
};
cashRegister.scan('eggs');
cashRegister.scan('eggs');
cashRegister.scan('magazine');
cashRegister.scan('magazine');
alert('Your bill is ' + cashRegister.total);
</script>
答案 2 :(得分:0)
这对我有用:
var cashRegister = {
total:0,
//insert the add method here
add: function(itemCost){
this.total += itemCost;
},
scan: function(item) {
switch (item) {
case "eggs":
this.add(0.98);
break;
case "milk":
this.add(1.23);
break;
//Add other 2 items here
case "magazine":
this.add(4.99);
break;
case "chocolate":
this.add(0.45);
break;
}
return true;
}
};
//Scan 2 eggs and 3 magazines
cashRegister.scan("eggs");
cashRegister.scan("eggs");
cashRegister.scan("magazine");
cashRegister.scan("magazine");
cashRegister.scan("magazine");
//Show the total bill
console.log('Your bill is '+cashRegister.total);