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
    
    
  • 相关阅读:
    DataGridView设置不自动显示数据库中未绑定的列
    [转载]sed 简明教程
    FreeMarker template error!
    tomcat共享lib里面的jar包
    java命令
    实验报告四
    实验报告三
    实验报告二
    实验一
    网络对抗技术作业
  • 原文地址:https://www.cnblogs.com/CharlieLau/p/5603448.html
Copyright © 2011-2022 走看看