最佳答案
选项1 - switch
使用return
:
function myFunction(opt) {
switch (opt) {
case 1: return "One";
case 2: return "Two";
case 3: return "Three";
default: return "";
}
}
选项2 - switch
使用break
:
function myFunction(opt) {
let retVal = "";
switch (opt) {
case 1:
retVal = "One";
break;
case 2:
retVal = "Two";
break;
case 3:
retVal = "Three";
break;
}
return retVal;
}
我知道这两种方法都有效,但其中一种是最佳实践吗?我倾向于选择1 - switch
使用return
最好,因为它更干净和更简单。
这是我使用@ic3b3rg的评论中提到的技术的特定示例的jsFiddle :
let 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);
这里的问题是它总是返回undefined。我猜这是因为它传递的是对象字面量的实际值而不是属性。我该如何使用@ic3b3rg的注释中描述的技术来修复这个问题?