zoukankan      html  css  js  c++  java
  • js-ifelse-奇技淫巧

    我们有A,B,C,D四个不同的类别,在最开始的时候只有三个类别,并且两个类别是做同样的事:

    1 function categoryHandle(category) {
    2     if(category !== 'A') {
    3       console.log('B, C');
    4     } else {
    5       console.log('A');
    6     }
    7 }
    1.1

    接着,出现了类别D——它与B和C相比来说,有一个不同的任务,而它又和B和C有一个相同的任务。于是,代码变成了这样。

    function categoryHandle(category) {
      if(category !== 'A') {
        if(category === 'D') {
          console.log('D');
        } else {
          console.log('B,C');
        }
        console.log('B, C ,D')
      } else {
        console.log('A');
      }
    }
    1.2

    然后

    function categoryHandle(category) {
      if(category === 'A') {
        console.log('A');
      } else if (category === 'B'){
        console.log('B');
      } else if (category === 'C'){
        console.log('D');
      }else if (category === 'D'){
        console.log('D');
      }
    }
    1.3

    当然用switch语句来做,但是我真不想这样想。接着,JavaScript的奇技淫巧来完成这个工作:

    function categoryHandleRefactor(category) {
      var categoryAction = {
        'A': {
          run: function () {
            console.log('A')
          }
        },
        'B': {
          run: function () {
            console.log('B')
          }
        },
        'C': {
          run: function () {
            console.log('C')
          }
        },
        'D': {
          run: function () {
            console.log('D')
          }
        }
      };
      categoryAction[category].run();
    }
    1.4
    
    
  • 相关阅读:
    更准确的mysql全文索引
    range
    牛顿冷却定律 使用
    Servo: The Embeddable Browser Engine
    Node.js V0.12新特性之性能优化
    Lodash,你正在使用的JavaScript库
    Python on Android
    Microsoft HoloLens 技术解谜(下)
    Microsoft HoloLens 技术解谜(上)
    市售体感设备横评
  • 原文地址:https://www.cnblogs.com/CharlieLau/p/5603448.html
Copyright © 2011-2022 走看看