我目前正在使用 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;
}
或者这是一个不好的做法?
不,这不是坏习惯。事实上,这是一个很好的做法。这样,您就不会重复自己。
另外,请查看文档:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/switch
最佳实践是避免重复代码。 这样,如果您以后需要修改代码,则无需记住在多个地方进行修改。
如果某些代码只适用于某些情况,可以省略一个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;
}
你也可以这样做...
case 'case1','case2': 相同的工作; 打破;
case 'case3':不同的工作; 打破;