从switch语句返回是否比使用break更好的做法? [英] Is returning out of a switch statement considered a better practice than using break?

查看:84
本文介绍了从switch语句返回是否比使用break更好的做法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

选项1-使用退货进行切换:

function myFunction(opt) 
{
    switch (opt) 
    {
        case 1: return "One";
        case 2: return "Two";
        case 3: return "Three";

        default: return "";
    }    
}

选项2-使用中断进行切换:

function myFunction(opt) 
{
    var retVal = "";

    switch (opt) 
    {
        case 1: 
            retVal = "One";
            break;

        case 2: 
            retVal = "Two";
            break;

        case 3: 
            retVal = "Three";
            break;
    }

    return retVal;
}

我知道这两种方法都是可行的,但是还有一种最佳实践吗?我倾向于选择选项1-切换收益率最好,因为它更干净,更简单.

I know that both work, but is one more of a best practice? I tend to like Option 1 - switch using return best, as it's cleaner and simpler.

这是我使用@ ic3b3rg注释中提到的技术的特定示例的jsFiddle :

var SFAIC = {};

SFAIC.common = 
{
    masterPages: 
    {
        cs: "CS_",
        cp: "CP_"
    },

    contentPages: 
    {
        cs: "CSContent_",
        cp: "CPContent_"    
    }
};

function getElementPrefix(page) 
{
    return (page in SFAIC.common.masterPages)
        ? SFAIC.common.masterPages[page]
        : (page in SFAIC.common.contentPages)
            ? SFAIC.common.contentPages[page]
            : undefined;
}

要调用该函数,我可以通过以下方式进行操作:

To call the function, I would do so in the following ways:

getElementPrefix(SFAIC.common.masterPages.cs);
getElementPrefix(SFAIC.common.masterPages.cp);
getElementPrefix(SFAIC.common.contentPages.cs);
getElementPrefix(SFAIC.common.contentPages.cp);

这里的问题是它总是返回未定义的.我猜这是因为它传递的是对象文字的实际值,而不是属性.我将如何使用 @ ic3b3rg的注释中描述的技术来解决此问题?

Problem here is that it always returns undefined. I'm guessing that it's because it's passing in the actual value of the object literal and not the property. What would I do to fix this using the technique described in @ic3b3rg's comments?

推荐答案

通过中断,您可以继续在函数中进行处理.如果您只想在函数中执行此操作,则只需退出开关即可.

A break will allow you continue processing in the function. Just returning out of the switch is fine if that's all you want to do in the function.

这篇关于从switch语句返回是否比使用break更好的做法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆