码迷,mamicode.com
首页 > 其他好文 > 详细

用Object字面量来代替swtich/if...else

时间:2015-08-15 22:50:57      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

很多时候,if...else...有很多判断分支选项,就会见到:

if (animal === ‘dog‘) {
  // TO DO ‘dog‘
} else if (animal === ‘cat‘) {
  // TO DO ‘cat‘  
} else if (animal === ‘bird‘) {
  // TO DO ‘bird‘  
} else if (animal === ‘fish‘) {
  // TO DO ‘fish‘  
} else {
   // TO DO ‘other‘  
}

确实通俗易懂,且写起来好方便,一路都是else if,太多选项分支,就有人用swtich这样写了:

swtich (animal) {
    case ‘dog‘:
        // TO DO ‘dog‘
        break;
    case ‘cat‘:
        // TO DO ‘cat‘  
        break;
    case ‘bird‘:
        // TO DO ‘bird‘ 
        break;
    case ‘fish‘:
        // TO DO ‘fish‘
        break;
     default:
        // TO DO ‘other‘
}

 但是,还是可以借鉴使用Object的hash思想:

function getAnimalName(name) {
    var animals = {
        ‘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)();
}
var animal = getAnimalName(‘dog‘);
console.log(animal);// ‘dog‘

 

用Object字面量来代替swtich/if...else

标签:

原文地址:http://www.cnblogs.com/kissxiaomei/p/4733229.html

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