因为if else这个问题我和我们大佬(开发组组长)进行了辩论。
大佬: 你这代码改不动,可读性差,改个地方就报错。
我: 我改造改造,你就看得懂了。
然而,我改完大佬依然认为我的代码垃圾,大佬遂重构!
此文主要是讨论逻辑判断的问题,特别是if else逻辑。
大佬认为这种代码可读性差:
A代码
var Shell ={
eventCommonConfig:{
openWin:function (data) {
//逻辑
return data;
},
}
}
if(name in Shell.eventCommonConfig) {
data = Shell.eventCommonConfig[name](data);
}
但是我认为大佬这种代码可读性也就不见得多好:
B代码
if(name == "openWin") {
//逻辑
}else if(name == "page_ready"){
//逻辑
}else{
//逻辑
}
一般攻城狮的常规写法
C代码
switch (name) {
case 'page_ready':
//逻辑
break;
case 'openWin':
//逻辑
break;
default:
break;
}
ABC三种代码,笔者认为C便于阅读理解同时兼顾性能,而A代码可读性略差但性能还行。B代码我就不说了,大家自行理解[手动狗头]。