出处

编程风格 - JavaScript 教程 - 网道 —— switchcase-结构

代码

switch...case结构要求,在每一个case的最后一行必须是break语句,否则会接着运行下一个case。这样不仅容易忘记,还会造成代码的冗长。

而且,switch...case不使用大括号,不利于代码形式的统一。此外,这种结构类似于goto语句,容易造成程序流程的混乱,使得代码结构混乱不堪,不符合面向对象编程的原则。

  1. function doAction(action) {
  2. switch (action) {
  3. case 'hack':
  4. return 'hack';
  5. break;
  6. case 'slash':
  7. return 'slash';
  8. break;
  9. case 'run':
  10. return 'run';
  11. break;
  12. default:
  13. throw new Error('Invalid action.');
  14. }
  15. }
  • 上面的代码建议改写成对象结构。 ``` function doAction(action) { var actions = { ‘hack’: function () {

    1. return 'hack';

    }, ‘slash’: function () {

    1. return 'slash';

    }, ‘run’: function () {

    1. return 'run';

    } };

    if (typeof actions[action] !== ‘function’) { throw new Error(‘Invalid action.’); }

    return actionsaction; }

```