JavaScript将switch...case改写成对象结构

版权声明:本文为博主原创文章,转载请注明原文出处。 https://blog.csdn.net/qq_41139830/article/details/82560079
switch…case不符合面向对象原则,所以最好改写成对象的结构。

switch…case结构:
function doAction(str) {
    switch(str) {
        //这里说明一下,由于return会跳出函数,所以case末尾不用加break。一般都是要加上break的。
        case 'hack': return 'hack';
        case 'slash': return 'slash';
        case 'run': return 'run';
        default: return 'Error! Invalid args.';
    }
}

console.log(doAction('hack'));     //hack
console.log(doAction('abcdefg'));  //Error! Invalid args.
对象结构:
function doAction(str) {
    var actions = {
        hack: function () { return 'hack'; },
        slash: function () { return 'slash'; },
        run: function() { return 'run'; }
    };

    if (typeof actions[str] !== 'function') { 
        return 'Error! Invalid args.'; 
    }

    return actions[str]();
}

console.log(doAction('hack'));     //hack
console.log(doAction('abcdefg'));  //Error! Invalid args.

END!

猜你喜欢

转载自blog.csdn.net/qq_41139830/article/details/82560079