ASP中函数的重载
熟悉ASP的人都知道,ASP的默认语言是VBScript,而VBScript是不支持函数重载的。有些人会问,何谓函数重载呢,在这里给出简单的解释:函数重载允许同一个函数名定义多个函数,被重载的函数必须有不同的形参列表,不可以根据反回值类型来重载函数。如tets(a,b)和test(a,b,c),后者对前者进行了重载。
ASP的默认语言是VBScript,而VBScript不支持函数重载,基于c的JScript服务器脚本,支持函数重载,可以弥补VBScript的不足。
平台/语言/软件/服务器
- 01
ASP
- 02
VBScript
- 03
JScript
- 04
Dreamweaver
- 05
IIS5.1
步骤/方法
- 01
假设一个ASP网站中定义了一个产品滚动列表的函数VBdsrollProList(topn,pWidth,pHeight),第一个参数是取多少个产品,第二和第三个参数分别是图片的宽度和高度,这个函数在网站的很多地方用到,后来根据需要,有一个地方的产品列表是根据分类调取的,如果想用原来的函数,就必须在原来函数的基础上增加一个参数,变成VBdsrollProList(topn,pWidth,pHeight,tid),最后一个参数是类别Id,因为VBScript不支持函数重载,所以其他用到该函数的地方都必须修改,否则会出现运行时错误,是否可以通过其他方法来实现函数重载呢?于是想到了基于c的JScript服务器脚本,因为c是可以函数重载的,以此来弥补VBScript的不足。
- 02
在VBScript中定义的产品滚动列表函数: <% function VBdsrollProList(topn,pWidth,pHeight,tid) '增加参数后的VBScript函数 'some code here end function %>
- 03
为了实现函数重载,定义JScript函数: <script type="text/jscript" language="jscript" runat="server"> function dsrollProList(topn,pWidth,pHeight) { return VBdsrollProList(topn,pWidth,pHeight,0); //返回VBScript函数,最后一个参数为0 } function dsrollProList(topn,pWidth,pHeight,tid) { return VBdsrollProList(topn,pWidth,pHeight,tid); //返回VBScript函数,最后一个参数为tid } </script>
- 04
在相应的地方调用相应的JScript函数,比如这样: <% Response.Write(dsrollProList(8,100,100)) 'some code here Response.Write(dsrollProList(10,130,90,5)) 'some code here %>