เมื่อเร็ว ๆ นี้ฉันได้จัดเรียงรหัส ASP/VBScript และพบว่า ASP ใช้กรอบ MVC ในอดีตเป็นผลิตภัณฑ์กึ่งสำเร็จรูปและประสิทธิภาพก็เป็นปัญหาเช่นกัน อย่างไรก็ตามฉันพบว่ามีรหัสบางอย่างที่ฉันเขียนไว้ในนั้นและฉันรู้สึกว่าฉันสามารถนำมันออกมาเพื่อพบปะผู้คนดังนั้นฉันจึงเขียนบทความนี้ในวันนี้เพื่อบันทึก
ว่ากันว่าเป็น ASP แต่มันไม่มีส่วนเกี่ยวข้องกับ VBScript ภาษา VBScript นั้นสืบทอดมาจาก Visual Basic ความยืดหยุ่นทางไวยากรณ์ของ VB นั้นไม่น่าพอใจอีกต่อไป เป็นชุดย่อย VBS สามารถจินตนาการได้ Microsoft ได้แนะนำเทคโนโลยีขั้นสูงเช่น Shenma Reflection และ Introspection ใน. NET ในฐานะที่เป็นเทคโนโลยีที่ถูกทอดทิ้งไม่มีความคาดหวังว่า Microsoft สามารถให้การสนับสนุนได้ดังนั้นโปรแกรมเมอร์ที่ดื้อรั้นและหัวโบราณสามารถทำให้สมองของพวกเขาเลียนแบบและใช้งานฟังก์ชั่นที่คล้ายกันได้
ฉันยอมรับว่าเป็นเวลานานที่ฉันเป็นหนึ่งในโรงเรียนที่ดื้อรั้นและอนุรักษ์นิยม วันนี้ฉันกำลังแนะนำหนึ่งในฟังก์ชั่นการสร้างวัตถุคุณสมบัติแบบไดนามิกและวัตถุแอตทริบิวต์เรียกว่าสิ่งนี้คือวัตถุที่สร้างขึ้นแบบไดนามิกมีคุณสมบัติเท่านั้น (คุณสมบัติ)
รหัสการใช้งานมีการโพสต์ด้านล่างสำหรับการอ้างอิงของคุณ:
การคัดลอกรหัสมีดังนี้:
-
'ASP/VBScript Dynamic Object Generator
'ผู้แต่ง: Wangye
'สำหรับข้อมูลเพิ่มเติมกรุณาเยี่ยมชม
-
'รหัสนี้แจกจ่ายภายใต้ใบอนุญาต BSD
-
const property_access_readonly = 1
const property_access_writeonly = -1
const property_access_all = 0
คลาส DynamicObject
m_objproperties ส่วนตัว
m_strname ส่วนตัว
คลาสย่อย class_initialize ()
ตั้งค่า m_objproperties = createObject ("Scripting.dictionary")
m_strName = "anonymousobject"
สิ้นสุดย่อย
คลาสย่อย class_terminate ()
ถ้าไม่ใช่ isObject (m_objproperties) แล้ว
m_objproperties.removeall
สิ้นสุดถ้า
ตั้งค่า m_objproperties = ไม่มีอะไร
สิ้นสุดย่อย
SETCLASSNAME สาธารณะ (strName)
m_strName = strName
สิ้นสุดย่อย
Public Sub Add (คีย์, ค่า, การเข้าถึง)
m_objproperties.add คีย์, อาร์เรย์ (ค่า, การเข้าถึง)
สิ้นสุดย่อย
SETVALUE ย่อยสาธารณะ (คีย์, ค่า, การเข้าถึง)
ถ้า m_objproperties.exists (คีย์) จากนั้น
m_objproperties.item (คีย์) (0) = ค่า
m_objproperties.item (คีย์) (1) = การเข้าถึง
อื่น
เพิ่มคีย์, ค่า, การเข้าถึง
สิ้นสุดถ้า
สิ้นสุดย่อย
ฟังก์ชั่นส่วนตัว getReadOnLyCode (strkey)
Dim strprivatename, strpublicgetName