选项1-使用return切换:
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-切换收益率最好,因为它更干净,更简单。
这是我的特定示例的jsFiddle,使用@ ic3b3rg的注释中提到的技术:
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;
}
要调用该函数,我将通过以下方式进行操作:
getElementPrefix(SFAIC.common.masterPages.cs);
getElementPrefix(SFAIC.common.masterPages.cp);
getElementPrefix(SFAIC.common.contentPages.cs);
getElementPrefix(SFAIC.common.contentPages.cp);
这里的问题是它总是返回未定义的。我猜这是因为它传递的是对象文字的实际值,而不是属性。我将如何使用@ ic3b3rg注释中描述的技术来解决此问题?
4
+1好问题。我自己对此感到纳闷,虽然我知道它可以正常工作,但我不知道这是否是最佳实践。好奇地看到社区的想法。
—
伊莱(Eli)