Передовая практика с помощью оператора javascript switch

В настоящее время я работаю над jQuery script с помощью оператора switch, и мне было интересно, какое лучшее решение, когда несколько "случаев" делят некоторые свойства, скажем, у меня есть этот шаблон:

switch (settings.xxx) {
case 'case1':
    Execute some code
    break;
case 'case2':
    Execute some code
    break;
case 'case3':
    Execute some code
    break;
}

В каждом случае у меня довольно много кода, который частично повторяется, потому что некоторые свойства являются общими для трех случаев. Поэтому мой вопрос: могу ли я сделать то же самое с:

switch (settings.xxx) {

case 'case1':
case 'case2':
case 'case3':
    Execute some code
    break;

}

switch (settings.xxx) {

case 'case1':
case 'case2':
    Execute some code
    break;
case 'case2':
case 'case3':
    Execute some code
    break;

}

Или это плохая практика?

Ответ 2

Лучшая практика заключается в том, чтобы избежать повторения кода. Таким образом, если вам потребуется изменить код, вам не нужно будет делать это в нескольких местах.

В ситуации, когда какой-то код применяется только к некоторым случаям, вы можете оставить перерыв, и выполнение завершится в следующем разделе после выполнения первого раздела. Это применимо только тогда, когда код специального кода может быть выполнен до кода общего кода. Будьте осторожны, когда вы это сделаете, и добавьте комментарии, четко заявляя, что вы делаете это намеренно. В противном случае, если код будет впоследствии отредактирован, кто-то еще может не понимать, что он намерен, и добавить разрыв там, где он отсутствует. См. Ниже:

switch (settings.xxx) {
case 'case1':
case 'case2':
    Execute some code that applies to cases 1 & 2
    // break left out to allow execution to fall through
case 'case3':
    Execute some code that applies to cases 1 - 3
    break;
case 'case4':
    Execute different code
    break;
}