VBScript - Thủ tục

Chức năng là gì?

Hàm là một nhóm mã có thể sử dụng lại có thể được gọi ở bất kỳ đâu trong chương trình của bạn. Điều này giúp loại bỏ sự cần thiết phải viết đi viết lại cùng một đoạn mã. Điều này sẽ cho phép người lập trình chia một chương trình lớn thành một số chức năng nhỏ và dễ quản lý. Ngoài các Hàm có sẵn, VBScript cũng cho phép chúng ta viết các hàm do người dùng định nghĩa. Phần này sẽ giải thích cho bạn cách viết các hàm của riêng bạn trong VBScript.

Định nghĩa hàm

Trước khi sử dụng một hàm, chúng ta cần xác định hàm cụ thể đó. Cách phổ biến nhất để xác định một hàm trong VBScript là sử dụng từ khóa Hàm, theo sau là một tên hàm duy nhất và nó có thể có hoặc không có danh sách các tham số và câu lệnh cóEnd Function từ khóa cho biết kết thúc của hàm.

Cú pháp cơ bản được hiển thị bên dưới:

<!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>

Thí dụ

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

      </script>
   </body>
</html>

Gọi một hàm

Để gọi một hàm ở đâu đó sau này trong script, bạn chỉ cần viết tên của hàm đó với Call từ khóa.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

         Call sayHello()
        
      </script>
   </body>
</html>

Tham số chức năng

Cho đến bây giờ, chúng ta đã thấy hàm không có tham số, nhưng có một cơ sở để truyền các tham số khác nhau trong khi gọi một hàm. Các tham số được truyền này có thể được nắm bắt bên trong hàm và bất kỳ thao tác nào có thể được thực hiện trên các tham số đó. Các hàm được gọi bằng cách sử dụngCall Từ khóa.

<!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>

Trả lại giá trị từ một hàm

Một hàm VBScript có thể có một câu lệnh trả về tùy chọn. Điều này là bắt buộc nếu bạn muốn trả về giá trị từ một hàm. Ví dụ: bạn có thể chuyển hai số trong một hàm và sau đó bạn có thể mong đợi từ hàm trả về phép nhân của chúng trong chương trình gọi của bạn.

NOTE - Một hàm có thể trả về nhiều giá trị được phân tách bằng dấu phẩy như một mảng được gán cho chính tên hàm.

Thí dụ

Hàm này nhận hai tham số và nối chúng và trả về kết quả trong chương trình đang gọi. Trong VBScript, các giá trị được trả về từ một hàm sử dụng tên hàm. Trong trường hợp nếu bạn muốn trả về hai hoặc nhiều giá trị, thì tên hàm được trả về cùng với một mảng giá trị. Trong chương trình gọi, kết quả được lưu trữ trong biến kết quả.

<!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>

Bây giờ, chúng ta có thể gọi hàm này như sau:

<!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>

Thủ tục phụ

Thủ tục con tương tự như các hàm nhưng có một số khác biệt.

  • Các thủ tục con KHÔNG ĐƯỢC Trả về một giá trị trong khi các hàm có thể trả về hoặc không thể trả về một giá trị.

  • Các thủ tục con Có thể được gọi mà không có từ khóa gọi.

  • Các thủ tục phụ luôn được đính kèm trong SubEnd Sub các câu lệnh.

Thí dụ

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub

      </script>
   </body>
</html>

Thủ tục gọi điện

Để gọi một Thủ tục ở đâu đó sau này trong tập lệnh, bạn chỉ cần viết tên của thủ tục đó có hoặc không có Call từ khóa.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub
         sayHello()

      </script>
   </body>
</html>

Các khái niệm nâng cao cho các chức năng

Có rất nhiều điều để tìm hiểu về các hàm VBScript. Chúng ta có thể truyền tham số byvalue hoặc byreference. Vui lòng nhấp vào từng cái để biết thêm.

  • ByVal- Chuyển các tham số theo giá trị

  • ByRef- Chuyển các tham số theo tham chiếu