就个人而言,我更喜欢编写将要执行的最复杂的函数,然后将其记录在注释中,以便其他人知道他们不必发送所有参数。
//concat(str1, str2 [,str3 [,str4 [,str5]]])
function concat(str1, str2, str3, str4, str5) {
var str = str1 + str2;
if(str3 != undefined)
str += str3;
if(str4 != undefined)
str += str4;
if(str5 != undefined)
str += str5;
return str;
}
我还发现了参数顺序在普通函数中很重要的情况,但有时我想单独发送参数(即我想发送 str3 和 str5 而不是 str4)。为此,我使用一个对象并测试已知属性
//concat({str1:string, str2:string, str3:string, str4:string, str5:string})
//str3, str4, and str5 are optional
function concat(strngs) {
var str = strngs.str1 + strngs.str2;
if(strngs.str3 != undefined)
str += strngs.str3;
if(strngs.str4 != undefined)
str += strngs.str4;
if(strngs.str5 != undefined)
str += strngs.str5;
return str;
}