为什么"返回真实"在这个功能?

时间:2015-04-21 06:32:27

标签: javascript switch-statement

在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);

2 个答案:

答案 0 :(得分:2)

返回值没有做任何事情。您可以省略该返回,并且它在您给出的用法中在语义上是相同的。

如果您需要执行以下操作:

if (!cashRegister.scan("eggs")) { 
    console.log("You forgot the eggs!"); 
}
如果scan()可能会返回虚假,那么返回真实或虚假是有道理的。

答案 1 :(得分:0)

这没有做任何事情,但我们可以使用它而不是break语句。 在那种情况下如果我们将从任何情况返回true,这将成功终止交换机。而外部开关我们可以把返回假,然后它将是一个故障temination,意味着找不到匹配的情况。