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
    
    
  • 相关阅读:
    Delphi中 弹出框的用法
    VC++代码上传到VSS上 注意事项
    VC++ 屏蔽掉警告
    IIS LocalDB 登录失败
    SVN版本回滚实战
    Git常用命令图解
    C# 百度API地址坐标互相转换
    Quartz.NET浅谈一 : 简单Job使用(定时发送QQ邮件)
    发布自己的类库包到Nuget
    C# 常用日期取得
  • 原文地址:https://www.cnblogs.com/CharlieLau/p/5603448.html
Copyright © 2011-2022 走看看