ตัวเลือกที่ 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 - สลับใช้ผลตอบแทนที่ดีที่สุดเพราะสะอาดและเรียบง่ายขึ้น
นี่คือ 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