版权声明:本文为博主原创文章,转载请注明原文出处。 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!