В JavaScript возврат из оператора switch считается лучшей практикой чем использовать break?

Вариант 1 - переключение с помощью return:

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

        default: return "";
    }    
}

Вариант 2 - переключение с помощью break:

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 - лучше всего переключаться с помощью return, так как он чище и проще.


Вот 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);

Проблема в том, что он всегда возвращает undefined. Я предполагаю, что это потому, что он передает фактическое значение литерала объекта, а не свойства. Что бы я сделал, чтобы исправить это, используя метод, описанный в комментариях @ ic3b3rg ?

188
задан Code Maverick 22 December 2014 в 06:45
поделиться