vbscript 可以按引用传递参数吗?

时间:2022-09-21 19:29:23

Vbscript可以按引用传递参数吗?

比如说

functionddd(str)

str=str&"12345"

endfunction

abc="54321"

想通过ddd(abc),把abc变成“5432112345”

要怎么改动才行呢?

回答:

  1. <script language=vbs>  
  2. function ddd(str)  
  3. str=str & "12345"  
  4. end function  
  5.  
  6. abc="54321"  
  7. ddd abc  
  8. msgbox abc  
  9. </script> 

没发现要改动的地方啊

其实vbscript默认的传递参数方式就是byref,如果要传值,反倒要写成

functionddd(byvalstr)

...

但是在JS中调用VBS定义的函数时,参数则是按值传递,指明byRef也没有用

如果要改变值,可以用对象包装起来,如

  1. <script language=vbs>  
  2. sub chgArg(a)  
  3.   a.x=100  
  4.   a.y=100  
  5. end sub  
  6. </script>  
  7.  
  8. <script language=jscript>  
  9. var t={x:0,y:0,show:function(){alert("this.x="+this.x+",this.y="+this.y)}}  
  10. t.show();  
  11. chgArg(t);  
  12. t.show();  
  13. </script>