首页 > 其他 > 详细

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

时间:2015-08-15 22:48:37      阅读:168      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!