VBScript 函数与过程示例
VBScript 过程
VBScript 过程主要用于代码组织和重用。到目前为止,我们一直使用简单的示例,因为这里的目的是学习 VBScript。但在实际场景中,代码并不像这样简单。当您尝试实现有用的东西时,代码可能会变得更加复杂。可能会有数百行代码分散在许多页面上。
如果您不正确地组织代码,那么编码、调试和管理代码的整个过程将变得非常复杂。因此,您应该仔细组织或模块化代码,以便您的代码易于管理。
此外,假设您有一组执行特定操作的语句。您希望同一操作重复多次。那么,为什么您要一遍又一遍地编写相同的代码呢?通过使用有效的技术,您可以使代码可重用。这将帮助开发人员漂亮地组织代码,并帮助测试人员轻松识别错误。总之,代码模块化和重用对于使代码更强大、更可靠、更易于维护非常重要。这时就需要过程出场了。
VBScript 中的过程类型
过程是代码块,理想情况下执行一个函数。处理输入或处理文件的代码块是函数的一个很好的例子。VBScript 中有两种类型的过程。
- Sub 过程:Sub 过程不返回值。
- 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>
此代码的输出将是
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>
此代码的输出将是
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 过程。
- 您可以按引用或按值将参数传递给过程。默认情况下,参数是通过引用传递的。
- 如果您希望在调用过程后,对参数所做的更改仍然存在,那么您需要通过引用传递参数,否则通过值传递。