switch...case结构
switch...case结构要求,在每一个case的最后一行必须是break语句,否则会接着运行下一个case。这样不仅容易忘记,还会造成代码的冗长。而且,switch...case不使用大括号,
不利于代码形式的统一。此外,这种结构类似于goto语句,容易造成程序流程的混乱,使得代码结构混乱不堪,不符合面向对象编程的原则。
function doDir(dir){
switch(dir){
case 'dirUp':
return 'dirUp';
break;
case 'dirDown':
return 'dirDown';
break;
case 'dirLeft':
return 'dirLeft';
break;
case 'dirRight':
return 'dirRight';
break;
default:
throw new Errow('Invalid dir');
break;
}
}
//上面的代码建议改写成对象结构。
function doDir(dir){
var dirs = {
'dirUp':function(){
return 'dirUp';
},
'dirDown':function(){
return 'dirDown';
},
'dirLeft':function(){
return 'dirLeft';
},
'dirRight':function(){
return 'dirRight';
}
};
if(typeof dirs[dir] !== 'function'){
throw new Errow('Invalid dir');
}
return dirs[dir]();
}