VBS 函数和过程默认的传递方式

来源:互联网 发布:淘宝搜索量排名 编辑:程序博客网 时间:2024/05/04 17:03

在介绍过程和函数的参数时跳过了一个概念:传址和传值。一个参数是传址还是传值取决于过程或函数定义中的声明。传址的参数用 ByRef 关键字说明,而传值的参数既可以用ByVal 关键字说明也可以不加任何说明——也就是说,没有明确地指定是哪一种的话,ByVal 就是默认值。

只可惜这段文字是错误的,VBS 过程和函数参数传递的方式默认是 ByRef,测试如下:

 

 

Function f(x,y)t = xx = yy = tEnd Function x = 123y = 456WSH.Echo x, y  '123 456x = 123y = 456f (x), (y)WSH.Echo x, y  '123 456x = 123y = 456Call f(x,y)WSH.Echo x, y  '456 123x = 123y = 456Call f((x),(y))WSH.Echo x, y  '123,456x = 123y = 456z = f(x,y)WSH.Echo x, y  '456,123x = 123y = 456z = f((x),(y))WSH.Echo x, y '123,456 


 除了证明 VBS 过程和函数参数传递的方式默认是 ByRef 以外,该脚本还说明了当用括号把表达式括起来的时候,内部会创建一个临时变量来保存括号中表达式的值。

0 0