VBScript 函数与过程示例

VBScript 过程

VBScript 过程主要用于代码组织和重用。到目前为止,我们一直使用简单的示例,因为这里的目的是学习 VBScript。但在实际场景中,代码并不像这样简单。当您尝试实现有用的东西时,代码可能会变得更加复杂。可能会有数百行代码分散在许多页面上。

如果您不正确地组织代码,那么编码、调试和管理代码的整个过程将变得非常复杂。因此,您应该仔细组织或模块化代码,以便您的代码易于管理。

此外,假设您有一组执行特定操作的语句。您希望同一操作重复多次。那么,为什么您要一遍又一遍地编写相同的代码呢?通过使用有效的技术,您可以使代码可重用。这将帮助开发人员漂亮地组织代码,并帮助测试人员轻松识别错误。总之,代码模块化和重用对于使代码更强大、更可靠、更易于维护非常重要。这时就需要过程出场了。

VBScript 中的过程类型

过程是代码块,理想情况下执行一个函数。处理输入或处理文件的代码块是函数的一个很好的例子。VBScript 中有两种类型的过程

  1. Sub 过程:Sub 过程不返回值。
  2. Function 过程:如果您想返回值,则使用 Function 过程。

Sub 过程

如果您想执行一系列语句而不返回值,那么您可以使用 Sub 过程。

Sub 过程分别以 Sub 和 End Sub 语句开头和结尾。Sub 过程可以接受参数,但不能返回值。Sub 过程可以接受输入,也可以不接受输入。

Sub outputMessage()
document.write("Welcome")
End Sub

仅仅编写此代码不会输出任何内容。在这里,您创建了一个名为 outputMessage 的 Sub 过程。接下来,您需要调用它。

call outputMessage()

将这两组代码放在 <script> 标签中,如下所示。

<script type="text/vbscript">

Sub outputMessage()
document.write("Welcome")
End Sub
call outputMessage()
</script>

此代码的输出将是

Sub Procedures

VBScript 函数

如果您想执行一系列语句并返回值,那么您需要使用 Function 过程,通常称为函数。

Function 过程分别以 Function 和 End Function 语句开头和结尾。

Function 过程可以接受输入,也可以不接受输入。

Function 过程通过将其值赋给其名称来返回值。

<script type="text/vbscript">
Function findArea(radius)
   const pi=3.14
   area = pi*radius*radius
   findArea = area
End Function
document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>")
document.write("The area of the circle when the radius is 10 is " & findArea(10))

</script>

此代码的输出将是

VBScript Functions

ByRef 和 ByVal 参数

您可以通过引用或值将 VBScript 参数传递给过程。

如果您在调用过程时未指定任何内容,则默认情况下参数将通过引用传递。

如果希望在调用过程后更改的参数仍然存在,则需要通过引用传递 VBScript 参数。

当按值传递参数时,被调用过程对变量值所做的任何更改在过程调用后不会保留。

ByRef 和 ByVal 关键字分别用于通过引用和通过值传递参数。

为了理解区别,请先执行下面的代码并查看输出。

步骤 1)将代码复制到您的编辑器中

<script type="text/vbscript">
Function returnResult(ByRef value)
   value = value +1
   returnResult = value
End Function
Dim x
x=5
call returnResult(x)
document.write(x)
</script>

步骤 2)输出为 6。

步骤 3)将 Function returnResult(ByRef value) 更改为 Function returnResult(ByVal value)

步骤 4)现在您的输出将是 5。

摘要

  • VBScript 过程主要用于更好的代码组织和重用。
  • VBS 过程有两种类型:Sub 过程和 Function 过程。
  • 如果您想执行一系列语句而不返回值,那么您可以使用 Sub 过程。
  • 如果您想执行一系列语句并返回值,那么您需要使用 Function 过程。
  • 您可以按引用或按值将参数传递给过程。默认情况下,参数是通过引用传递的。
  • 如果您希望在调用过程后,对参数所做的更改仍然存在,那么您需要通过引用传递参数,否则通过值传递。