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
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息