13

我目前正在使用 switch 语句编写一个 jquery 脚本,我想知道当几个“案例”共享一些属性时最好的解决方案是什么,假设我有这种模式:

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

对于每种情况,我都有相当多的代码部分重复,因为某些属性对于这 3 种情况是通用的。所以我的问题是,我可以这样做吗:

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;

}

或者这是一个不好的做法?

4

2 回答 2

14

不,这不是坏习惯。实际上,这是一种很好的做法。这样,您就不会重复自己

另外,请查看文档:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/switch

于 2012-11-26T17:25:08.220 回答
8

最佳实践是避免重复代码。这样,如果您以后需要修改代码,您就不需要记住在多个地方进行。

在某些代码只适用于某些情况的情况下,可以省略一个break,执行完第一节后会跳到下一节。这仅适用于特殊情况代码可以在一般情况代码之前执行的情况。执行此操作时要小心,并添加明确说明您是故意这样做的注释。否则,如果稍后编辑代码,其他人可能不会意识到这是故意的,并在缺少的地方添加中断。见下文:

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;
}
于 2013-06-07T14:35:55.437 回答