js-ifelse-奇技淫巧

咱们有A,B,C,D四个不一样的类别,在最开始的时候只有三个类别,而且两个类别是作一样的事:ide

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有一个相同的任务。因而,代码变成了这样。spa

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

而后code

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的奇技淫巧来完成这个工做:blog

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
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息