js-ifelse-奇技淫巧

Posted ChalresQQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 


以上是关于js-ifelse-奇技淫巧的主要内容,如果未能解决你的问题,请参考以下文章

python奇技淫巧

phpstorm 都有哪些奇技淫巧

phpstorm 都有哪些奇技淫巧

深入浅出jQuery源码浅析2--奇技淫巧

深入浅出jQuery源码浅析2--奇技淫巧

C的奇技淫巧