出处
代码
switch...case
结构要求,在每一个case
的最后一行必须是break
语句,否则会接着运行下一个case。这样不仅容易忘记,还会造成代码的冗长。而且,
switch...case
不使用大括号,不利于代码形式的统一。此外,这种结构类似于goto
语句,容易造成程序流程的混乱,使得代码结构混乱不堪,不符合面向对象编程的原则。
function doAction(action) {
switch (action) {
case 'hack':
return 'hack';
break;
case 'slash':
return 'slash';
break;
case 'run':
return 'run';
break;
default:
throw new Error('Invalid action.');
}
}
上面的代码建议改写成对象结构。 ``` function doAction(action) { var actions = { ‘hack’: function () {
return 'hack';
}, ‘slash’: function () {
return 'slash';
}, ‘run’: function () {
return 'run';
} };
if (typeof actions[action] !== ‘function’) { throw new Error(‘Invalid action.’); }
return actionsaction; }
```