出处
代码
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; }
```
