从switch语句返回是否比使用break更好的做法? [英] Is returning out of a switch statement considered a better practice than using 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屋!