VBScript的中ByRef和ByVal的不同

在VBScipt中ByRef表示的是地址的变化,而ByVal表示的是值得变化,比如

Dim i,j
i=1
j=1
Function ByRefValue(ByRef val1)
val1=val1+1
End Function
Function ByValValue(ByVal val2)
val2=val2+1
End Function
ByRefValue i
ByValValue j
MsgBox i&vbCrlf&j

结果就是


用通俗点的例子说明的话可以这样子想:

相当于一个苹果,j 相当于一个梨,地址就是你的桌子;

1)执行 ByRef 时就相当于一个人知道你的地址,就是知道你的桌子(地址)在哪,他过去在你的桌子上又放了一个梨( ),那么你的桌子上就有一个苹果( )和一个梨( j )了,i和j相加就是2了。

2)而执行 ByVal 时相当于一个人不知道你的桌子(地址)在哪,他就随便找了一张桌子(临时地址)把梨( )放在那了,这样子你的桌子上的苹果并没有变化,就是说你桌子上的苹果( )没有变,所以执行之后值还是1。

你可能感兴趣的:(VBScript)