今天突然想在Web脚本里传回多个值,想想需要使用引用参数。但Javascript似乎没有?(我没找到这个功能)
于是想到VBScript有这种功能,试了试,一开始是这样子的:
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
Test (m)
MsgBox m
MsgBox result
</script>
运行结果:f f (空)
什么?不行?我明明用了ByRef了呀,怎么回事?
然后就有以下几个版本的调试:
[版本一]
<script language=vbscript>
Sub Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Sub
Dim m,result
m = "f"
Test m
MsgBox m
MsgBox result
</script>
运行结果:f 3 (空)
咦,行了,差别只是函数变成了过程!我晕翻。难道函数就不行了?
[版本二]
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
Test m
MsgBox m
MsgBox result
</script>
运行结果:f 3 (空)
咦,又行了,差别只是调用函数的时候没有括号!我晕翻。
[版本三]
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
result = Test (m)
MsgBox m
MsgBox result
</script>
运行结果:f 3 3
啊?这样又行?差别只是多加了个返回值!
看了以上三个版本都行,呜,是我运气不好,偏偏写了个错误的函数……晕了。
于是想到VBScript有这种功能,试了试,一开始是这样子的:
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
Test (m)
MsgBox m
MsgBox result
</script>
运行结果:f f (空)
什么?不行?我明明用了ByRef了呀,怎么回事?
然后就有以下几个版本的调试:
[版本一]
<script language=vbscript>
Sub Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Sub
Dim m,result
m = "f"
Test m
MsgBox m
MsgBox result
</script>
运行结果:f 3 (空)
咦,行了,差别只是函数变成了过程!我晕翻。难道函数就不行了?
[版本二]
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
Test m
MsgBox m
MsgBox result
</script>
运行结果:f 3 (空)
咦,又行了,差别只是调用函数的时候没有括号!我晕翻。
[版本三]
<script language=vbscript>
Function Test (ByRef a1)
MsgBox a1
a1 = 3
Test = a1
End Function
Dim m,result
m = "f"
result = Test (m)
MsgBox m
MsgBox result
</script>
运行结果:f 3 3
啊?这样又行?差别只是多加了个返回值!
看了以上三个版本都行,呜,是我运气不好,偏偏写了个错误的函数……晕了。