码迷,mamicode.com
首页 > Web开发 > 详细

js-ifelse-奇技淫巧

时间:2016-06-21 15:26:06      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

我们有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

 

js-ifelse-奇技淫巧

标签:

原文地址:http://www.cnblogs.com/CharlieLau/p/5603448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!