swtich/if...else的替代语句
很多时候,if...else...有很多判断分支选项,就会见到:
if(animal==='dog'){ //TODO'dog' }elseif(animal==='cat'){ //TODO'cat' }elseif(animal==='bird'){ //TODO'bird' }elseif(animal==='fish'){ //TODO'fish' }else{ //TODO'other' }
确实通俗易懂,且写起来好方便,一路都是elseif,太多选项分支,就有人用swtich这样写了:
swtich(animal){ case'dog': //TODO'dog' break; case'cat': //TODO'cat' break; case'bird': //TODO'bird' break; case'fish': //TODO'fish' break; default: //TODO'other' }
但是,还是可以借鉴使用Object的hash思想:
functiongetAnimalName(name){ varanimals={ 'dog':function(){ return'dog'; }, 'cat':function(){ return'cat'; }, 'bird':function(){ return'bird'; }, 'fish':function(){ return'fish'; }, 'default':function(){ return'other'; } }; return(animals.name||animals.default)(); } varanimal=getAnimalName('dog'); console.log(animal);//'dog'
以上就是本文的全部内容了,希望大家能够喜欢。