在Codeacademy的这个具体例子中,为什么我们需要“返回true”? 它做了什么吗? (尝试没有它并得到相同的结果。)
(来源:http://www.codecademy.com/courses/close-the-super-makert/0/3?curriculum_id=506324b3a7dffd00020bf661)
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);
答案 0 :(得分:2)
返回值没有做任何事情。您可以省略该返回,并且它在您给出的用法中在语义上是相同的。
如果您需要执行以下操作:
if (!cashRegister.scan("eggs")) {
console.log("You forgot the eggs!");
}
如果scan()
可能会返回虚假,那么返回真实或虚假是有道理的。
答案 1 :(得分:0)
这没有做任何事情,但我们可以使用它而不是break语句。 在那种情况下如果我们将从任何情况返回true,这将成功终止交换机。而外部开关我们可以把返回假,然后它将是一个故障temination,意味着找不到匹配的情况。