有一种理论,叫结构化程序设计(structed programming)。其中有这样一条原则:函数应该只有一个入口和一个出口。
例:
1 function sample() 2 { 3 if(!document.getElementById) 4 { 5 return false; 6 } 7 8 if(!document.getElementsByTagName) 9 { 10 return false; 11 } 12 }
在上例中使用了多条return false语句,它们全都是这个函数的出口。根据结构化程序设计理论,应该把这些出口点减少到一个。
但在实际工作中,过分拘泥于这项原则往往会使代码变得非常难以阅读。如果为了避免留下多个出口点而去改写那些if语句的话,这个函数的核心代码就会被掩埋在一层又一层的花括号里,就像下面这样:
1 function sample() 2 { 3 if(document.getElementById) 4 { 5 if(document.getElementByTagName) 6 { 7 //statements go here... 8 } 9 } 10 }
我个人认为,如果一个函数有多个出口,只要这些出口集中出现在函数的开头部分,就是可以接受的。
1 function sample() 2 { 3 if(!document.getElementById) return false; 4 if(!document.getElementsByTagName) return false; 5 }
浙公网安备 33010602011771号