函數是一組可重用的代碼,可以在程序的任何地方調用。這樣就不需要一遍又一遍地編寫相同的代碼。這將使程式設計師能夠將一個大程序劃分爲許多小的和可管理的函數。除了內置函數外,VBScript還允許我們編寫用戶定義的函數。本節將解釋如何用VBScript編寫自己的函數。
Function Definition
在使用函數之前,我們需要定義那個特定的函數。在VBScript中定義函數的最常用方法是使用function關鍵字,後跟一個唯一的函數名,它可以或不可以帶有參數列表和一個帶有End function關鍵字的語句,該關鍵字指示函數的結束。
基本語法如下所示−
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function Functionname(parameter-list) statement 1 statement 2 statement 3 ....... statement n End Function </script> </body> </html>
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello() msgbox("Hello there") End Function </script> </body> </html>
Calling a Function
要在腳本中稍後的某個地方調用函數,只需使用Call關鍵字編寫該函數的名稱。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello() msgbox("Hello there") End Function Call sayHello() </script> </body> </html>
Function Parameters
到目前爲止,我們已經看到了不帶參數的函數,但是有一個工具可以在調用函數時傳遞不同的參數。這些傳遞的參數可以在函數內部捕獲,並且可以對這些參數執行任何操作。使用Call關鍵字調用函數。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello(name, age) msgbox( name & " is " & age & " years old.") End Function Call sayHello("Tutorials point", 7) </script> </body> </html>
Returning a Value from a Function
VBScript函數可以有一個可選的返回語句。如果要從函數返回值,則必須執行此操作。例如,您可以在函數中傳遞兩個數字,然後您可以期望函數在調用程序中返回它們的乘法。
注意−函數可以返回多個以逗號分隔的值,作爲分配給函數名本身的數組。
Example
此函數接受兩個參數並將它們連接起來,然後在調用程序中返回結果。在VBScript中,值是使用函數名從函數返回的。如果要返回兩個或多個值,則函數名將與值數組一起返回。在調用程序中,結果存儲在result變量中。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function concatenate(first, last) Dim full full = first & last concatenate = full 'Returning the result to the function name itself End Function </script> </body> </html>
現在,我們可以如下調用這個函數&負;
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function concatenate(first, last) Dim full full = first & last concatenate = full 'Returning the result to the function name itself End Function ' Here is the usage of returning value from function. dim result result = concatenate("Zara", "Ali") msgbox(result) </script> </body> </html>
Sub Procedures
子過程類似於函數,但幾乎沒有區別。
子過程不返回值,而函數可能返回值,也可能不返回值。
調用子過程時可以不使用call關鍵字。
子過程總是包含在Sub和End Sub語句中。
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Sub sayHello() msgbox("Hello there") End Sub </script> </body> </html>
Calling Procedures
要在腳本中稍後的某個地方調用過程,您只需編寫帶有或不帶有Call關鍵字的過程的名稱。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Sub sayHello() msgbox("Hello there") End Sub sayHello() </script> </body> </html>
Advanced Concepts for Functions
關於VBScript函數有很多需要學習的地方。我們可以傳遞參數byvalue或byreference。請點擊每一個了解更多。
ByVal-按值傳遞參數
byref-通過引用傳遞參數