Ví dụ về hàm và thủ tục VBScript
Thủ tục VBScript
Các thủ tục VBScript chủ yếu được sử dụng để tổ chức và tái sử dụng mã. Chúng tôi đã sử dụng các ví dụ đơn giản cho đến bây giờ vì mục đích ở đây là học VBScript. Nhưng trong tình huống thực tế, mã không đơn giản như vậy. Khi bạn cố gắng triển khai một cái gì đó hữu ích, mã có thể trở nên phức tạp hơn. Có thể có hàng trăm dòng trải dài trên nhiều trang.
Nếu bạn không sắp xếp code đúng cách, toàn bộ quá trình mã hóa, gỡ lỗi và quản lý code sẽ trở nên thực sự phức tạp. Vì vậy, bạn nên sắp xếp hoặc mô-đun hóa code cẩn thận để code của bạn trở nên dễ quản lý.
Hơn nữa, giả sử bạn có một tập hợp các câu lệnh thực hiện một hành động cụ thể. Bạn muốn hành động tương tự được lặp lại nhiều lần. Vậy thì tại sao bạn phải viết đi viết lại cùng một đoạn mã? Bằng cách sử dụng các kỹ thuật hiệu quả, bạn có thể làm cho mã của mình có thể sử dụng lại được. Điều này sẽ giúp các nhà phát triển tổ chức mã đẹp mắt và người kiểm tra có thể xác định lỗi dễ dàng. Nói tóm lại, việc mô đun hóa và tái sử dụng mã là rất quan trọng để làm cho mã mạnh hơn, đáng tin cậy hơn và dễ bảo trì hơn. Ở đây có các thủ tục thành một bức tranh.
Các loại thủ tục trong VBScript
Một thủ tục là một khối mã thực hiện một chức năng duy nhất một cách lý tưởng. Một khối mã xử lý đầu vào hoặc xử lý một tệp là một ví dụ điển hình về hàm. Có hai loại thủ tục trong vbscript.
- Thủ tục phụ: Thủ tục phụ không trả về giá trị.
- Thủ tục hàm: Thủ tục hàm được sử dụng nếu bạn muốn trả về một giá trị.
Thủ tục phụ
Nếu bạn muốn thực thi một loạt câu lệnh mà không trả về bất kỳ giá trị nào thì bạn có thể sử dụng các thủ tục phụ.
Các thủ tục phụ bắt đầu và kết thúc bằng các câu lệnh Sub và End Sub tương ứng. Thủ tục phụ có thể nhận đối số nhưng không thể trả về giá trị. Các thủ tục phụ có thể có hoặc không có đầu vào.
Sub outputMessage() document.write("Welcome") End Sub
Chỉ viết mã này sẽ không xuất ra bất cứ thứ gì. Ở đây bạn đã tạo một thủ tục phụ có tên là outMessage. Tiếp theo, bạn cần gọi nó.
gọi đầu raMessage()
Kết hợp cả hai bộ mã này vào bên trong tag like this.
<script type="text/vbscript"> Sub outputMessage() document.write("Welcome") End Sub call outputMessage() </script>
Đầu ra của mã này sẽ là
Hàm VBScript
Nếu bạn muốn thực thi một chuỗi câu lệnh và trả về một giá trị, thì bạn cần sử dụng các thủ tục hàm, thường được gọi là hàm.
Các thủ tục hàm bắt đầu và kết thúc bằng các câu lệnh Hàm và Kết thúc hàm tương ứng.
Một thủ tục hàm có thể nhận hoặc không nhận đầu vào.
Các thủ tục hàm trả về một giá trị bằng cách gán giá trị đó cho tên của nó.
<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>
Đầu ra của mã này sẽ là
Tham số ByRef và ByVal
Bạn có thể chuyển các đối số VBScript cho các thủ tục bằng tham chiếu hoặc theo giá trị.
Nếu bạn không chỉ định bất cứ điều gì khi gọi một thủ tục thì theo mặc định, đối số/đối số sẽ được truyền theo tham chiếu.
Nếu những thay đổi được thực hiện đối với các đối số vẫn tồn tại ngay cả sau khi thủ tục được gọi, thì bạn cần chuyển các đối số VBScript bằng tham chiếu.
Khi một đối số được truyền theo giá trị, mọi thay đổi mà thủ tục được gọi thực hiện đối với giá trị của biến không tồn tại sau khi thủ tục được gọi.
Từ khóa ByRef và ByVal được sử dụng để truyền đối số theo tham chiếu và theo giá trị tương ứng.
Để hiểu sự khác biệt, trước tiên, hãy thực thi đoạn mã dưới đây và xem kết quả.
Bước 1) Sao chép mã vào trình soạn thảo của bạn
<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>
Bước 2) đầu ra là 6.
Bước 3) Thay đổi Hàm returnResult(ByRef value) thành Hàm returnResult(ByVal value)
Bước 4) Bây giờ đầu ra của bạn sẽ là 5.
Tổng kết
- Các thủ tục VBScript được sử dụng chủ yếu để tổ chức và tái sử dụng mã tốt hơn.
- Có hai loại thủ tục VBS: Thủ tục con và Thủ tục chức năng.
- Nếu bạn muốn thực thi một loạt câu lệnh mà không trả về bất kỳ giá trị nào thì bạn có thể sử dụng các thủ tục phụ.
- Nếu bạn muốn thực thi một loạt câu lệnh và trả về một giá trị thì bạn cần sử dụng các thủ tục hàm.
- Bạn có thể truyền đối số cho thủ tục bằng tham chiếu hoặc theo giá trị. Các đối số được truyền theo tham chiếu theo mặc định.
- Nếu bạn muốn những thay đổi xảy ra với các đối số vẫn được duy trì ngay cả sau khi thủ tục được gọi, thì bạn cần truyền các đối số theo tham chiếu và theo giá trị.