作者:静¢脉(hayden)
网址:myhhe.cn
大家都知道 在ASP里,实际上是不支持函数重载的
可能有些人要问了 到底什么是函数重载呢?
在这里给出解释:函数重载允许用同一个函数名定义多个函数,被重载的函数必须要有不同的形参列表,不可以根据函数返回值类型来重载函数.
如
replace("aaddbbeea","a","b")
replace("aaddbbeea","a","b",-1)
这里的replace 实际上可以看做是一个函数重载了
把他看成两个函数 一个是replace(a,b,c) 一个是replace(a,b,c,d)
如果我们在实际工作中 需要写一个函数如
funTest(str1,str2,str3,str4,.......)
当调用时,可能经常只用到前三个函数,或是前四个, 其它的只是某些特别的时候才用到的
可是每次调用起来如下面这种样子,后面拖了一排空值,感觉也麻烦.
funTest("a","b","c","","","","","",.....)
看这段代码
function funTest(a,b,c)
funTest=funTest(a,b,c,"","")
end function
function funTest(a,b,c,d,e)
end function
funTest(a,b,c)
'这样出错 答不到想要的效果
于是想到了用基于c的JScript服务端脚本
因为C是可以函数重载的,以此来弥补ASP的不足
<script language="JScript" runAt="server">
function funTest(a,b,c){
return VBfunTest(a,b,c,"","");
}
function funTest(a,b,c,d){
return VBfunTest(a,b,c,d,"");
}
function funTest(a,b,c,d,e){
return VBfunTest(a,b,c,d,e);
}
</script>
<%
function VBfunTest(a,b,c,d,e)
VBfunTest=a & b & c & d & e
end function
%>
在使用时:
<%
funTest("x","y","z")
funTest("x","y","z","h")
funTest("x","y","z","h","i")
%>
真正达到了想怎么调用就怎么调用.
