记得以前看见过调用函数时可以省略参数,不知道怎么实现的?
如:
<%
response.write aaa("www.","csdn.net")function aaa(a1,a2)
aaa = a1&a2
end function
%>
正常情况下会返回"www.csdn.net"我想实现的是经过处理在调用aaa的时候如果写成
response.write aaa()
则显示自定义默认值"www.msdn.net如何去做?请大家指教.谢谢.
ru

解决方案 »

  1.   

    response.write aaa(a1,optional a2 ="csdn.net")
      

  2.   

    楼主到网上搜搜option的用法即可
    function aaa(a1,option a2 as string=“www.msdn.net”)
    aaa = a1&a2
    end function
      

  3.   

    然后调用response.write aaa("www.")
      

  4.   

    Function 语句示例
    该示例使用 Function 语句来声明 Function 过程的名称、参数、以及构成 Function 过程主体的代码。最后一个例子中使用了确定类型的、初始化的 Optional 参数。'下面的用户自定义函数返回
    '它的参数的平方根。
    Function CalculateSquareRoot(NumberArg As Double) As Double
       If NumberArg < 0 Then   '评估参数。
          Exit Function   '退出调用过程。
       Else
          CalculateSquareRoot = Sqr(NumberArg)   '返回平方根。
       End If
    End Function使用 ParamArray 关键字可以使函数接收数目可变的参数。在下面的定义中,FirstArg 是按值传递的。Function CalcSum(ByVal FirstArg As Integer, ParamArray OtherArgs())
    Dim ReturnValue 
    '如果用如下代码调用该函数:
    ReturnValue = CalcSum(4, 3 ,2 ,1)
    '则局部变量被赋予以下值:FirstArg = 4,
    'OtherArgs(1) = 3,OtherArgs(2) = 2,等等。
    '假设缺省数组下界 = 1。Optional 参数可以带缺省值,可以是除 Variant 之外的任何类型。'如果函数的参数定义如下:
    Function MyFunc(MyStr As String, Optional MyArg1 As _ Integer = 5, Optional MyArg2 = "Dolly") 
    Dim RetVal
    '则可用如下代码调用该函数:
    RetVal = MyFunc("Hello", 2, "World")   '提供了所有 3 个参数。
    RetVal = MyFunc("Test", , 5)   '省略了参数 2。
    '参数 1 和参数 3 使用了命名的参数。
    RetVal = MyFunc(MyStr:="Hello ", MyArg1:=7)
      

  5.   

    请问这个用ASP 直接写怎么写?我按楼上的去写不行啊...
      

  6.   

    <%
    function aaa(a1, a2 )
    if a2="" then
    a2="www.csdn.com"
    end if 
    aaa = a1 & a2
    end functionresponse.write aaa("www.","")%>
    vbscript不支持option参数,改用判断吧
      

  7.   

    http://topic.csdn.net/t/20050314/13/3849146.html 帮你查过了,你可以仔细看看楼主
      

  8.   

    vb才支付optional,ASP是不支持的
      

  9.   

    ASP和VB有些出入.
    楼主还是写两个函数,然后先判断参数的值,以决定调用哪种函数吧. 这样就很简单了,玩什么高难呢.