ฟังก์ชั่นและขั้นตอน VBScript พร้อมตัวอย่าง
ขั้นตอน VBScript
ขั้นตอน VBScript ใช้เพื่อจัดระเบียบและนำโค้ดกลับมาใช้ใหม่เป็นหลัก จนถึงตอนนี้ เราใช้ตัวอย่างง่ายๆ มาโดยตลอด เนื่องจากจุดประสงค์ของบทความนี้คือการเรียนรู้ VBScript แต่ในสถานการณ์จริง โค้ดไม่ได้ง่ายอย่างนั้น เมื่อคุณพยายามนำสิ่งที่มีประโยชน์ไปใช้ โค้ดอาจซับซ้อนมากขึ้น อาจมีบรรทัดหลายร้อยบรรทัดที่ทอดยาวไปทั่วทั้งหลายหน้า
หากคุณไม่จัดระเบียบโค้ดอย่างเหมาะสม กระบวนการเขียนโค้ด ดีบัก และจัดการโค้ดทั้งหมดก็จะซับซ้อนมากขึ้น ดังนั้น คุณควรจัดระเบียบหรือแบ่งโค้ดอย่างระมัดระวังเพื่อให้จัดการโค้ดได้ง่าย
นอกจากนี้ สมมติว่าคุณมีชุดคำสั่งที่ดำเนินการอย่างใดอย่างหนึ่ง คุณต้องการให้การกระทำเดิมซ้ำหลายครั้ง แล้วทำไมคุณถึงต้องเขียนโค้ดเดิมซ้ำแล้วซ้ำเล่า? ด้วยการใช้เทคนิคที่มีประสิทธิภาพ คุณสามารถทำให้โค้ดของคุณสามารถนำมาใช้ซ้ำได้ สิ่งนี้จะช่วยให้นักพัฒนาจัดระเบียบโค้ดได้อย่างสวยงามและผู้ทดสอบสามารถระบุจุดบกพร่องได้อย่างง่ายดาย กล่าวโดยสรุป การทำให้โค้ดเป็นโมดูลและการนำกลับมาใช้ใหม่เป็นสิ่งสำคัญมากในการทำให้โค้ดมีประสิทธิภาพ เชื่อถือได้ และบำรุงรักษาได้ง่ายขึ้น มาที่นี่ขั้นตอนเป็นภาพ
ประเภทของขั้นตอนใน VBScript
ขั้นตอนคือกลุ่มของโค้ดที่ทำหน้าที่เดียวได้อย่างดีเยี่ยม บล็อกของโค้ดที่ประมวลผลอินพุตหรือจัดการไฟล์เป็นตัวอย่างที่ดีของฟังก์ชัน มีขั้นตอนอยู่สองประเภท วีบีสคริปต์.
- ขั้นตอนย่อย: ขั้นตอนย่อยไม่ส่งกลับค่า
- ขั้นตอนฟังก์ชัน: ขั้นตอนฟังก์ชันจะใช้ถ้าคุณต้องการส่งกลับค่า
ขั้นตอนย่อย
หากคุณต้องการดำเนินการชุดคำสั่งโดยไม่ส่งคืนค่าใดๆ คุณสามารถใช้ขั้นตอนย่อยได้
ขั้นตอนย่อยเริ่มต้นและสิ้นสุดด้วยคำสั่ง Sub และ End Sub ตามลำดับ ขั้นตอนย่อยสามารถรับอาร์กิวเมนต์ได้ แต่ไม่สามารถส่งคืนค่าได้ ขั้นตอนย่อยอาจจะหรืออาจจะไม่รับข้อมูลเข้าก็ได้
Sub outputMessage() document.write("Welcome") End Sub
เพียงแค่เขียนโค้ดนี้จะไม่แสดงผลอะไรเลย ที่นี่คุณได้สร้างขั้นตอนย่อยชื่อ outputMessage ต่อไปคุณต้องเรียกมัน
โทรออกข้อความ ()
รวมรหัสทั้งสองชุดนี้ไว้ข้างใน tag like this.
<script type="text/vbscript"> Sub outputMessage() document.write("Welcome") End Sub call outputMessage() </script>
ผลลัพธ์ของโค้ดนี้จะเป็น
ฟังก์ชั่น VBScript
หากคุณต้องการดำเนินการชุดคำสั่งและส่งกลับค่า คุณจะต้องใช้โพรซีเดอร์ของฟังก์ชัน หรือที่เรียกกันทั่วไปว่าฟังก์ชัน
ขั้นตอนการทำงานเริ่มต้นและสิ้นสุดด้วยคำสั่ง Function และ End 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) เปลี่ยนฟังก์ชัน returnResult (ค่า ByRef) เป็นฟังก์ชัน returnResult (ค่า ByVal)
ขั้นตอน 4) ตอนนี้ผลลัพธ์ของคุณจะเป็น 5
สรุป
- ขั้นตอน VBScript ใช้เป็นหลักเพื่อการจัดระเบียบโค้ดที่ดีขึ้นและการนำกลับมาใช้ใหม่
- ขั้นตอน VBS มีสองประเภท: ขั้นตอนย่อยและขั้นตอนการทำงาน
- หากคุณต้องการดำเนินการชุดคำสั่งโดยไม่ส่งคืนค่าใดๆ คุณสามารถใช้ขั้นตอนย่อยได้
- หากคุณต้องการดำเนินการชุดคำสั่งและส่งกลับค่า คุณจะต้องใช้โพรซีเดอร์ของฟังก์ชัน
- คุณสามารถส่งผ่านอาร์กิวเมนต์ไปยังขั้นตอนโดยการอ้างอิงหรือตามค่า อาร์กิวเมนต์จะถูกส่งผ่านโดยการอ้างอิงตามค่าเริ่มต้น
- หากคุณต้องการให้การเปลี่ยนแปลงที่เกิดขึ้นกับอาร์กิวเมนต์ยังคงอยู่แม้หลังจากเรียกใช้ขั้นตอนแล้ว คุณจะต้องส่งอาร์กิวเมนต์โดยอ้างอิงและไม่เช่นนั้นก็โดยค่า