option explicit<br />dim str1,str2<br />str1 ="order|||shiyang:100,mayang:200"<br />str2 = "book|||shuming:電腦,dingjia:100"<br />'聲明2個全域對象<br />'放棄了一開始希望用數組儲存的方式,那個雖然效率更高,但是需要自訂的array_pushobj函數,所以此處不做討論了<br />dim objname_g<br />dim classname_g<br />'返回實體類<br />function getObjmod(byval str)<br /> dim classname,itemlist,i<br /> dim execstr<br />classname = split(str,"|||")(0)<br /> execstr = "class "&classname&chr(10)<br /> itemlist = split(split(str,"|||")(1),",")<br /> for i = 0 to ubound(itemlist)<br /> execstr = execstr +"public "&split(itemlist(i),":")(0)&chr(13)&chr(10)<br /> next<br /> execstr = execstr&"end class"&chr(13)&chr(10)&_<br /> " set objname_g = new "&classname</p><p> classname_g =classname<br /> execute execstr</p><p>end function<br />'賦值<br />function getobjcon(byval str)<br />dim itemlist,i,execstr<br />if classname_g = split(str,"|||")(0) and isobject(objname_g) then<br />set getobjcon = objname_g<br />else<br />getObjmod( str)<br />set getobjcon = objname_g<br />end if<br /> itemlist = split(split(str,"|||")(1),",")<br /> for i = 0 to ubound(itemlist)<br /> execstr = execstr +"getobjcon."&split(itemlist(i),":")(0)&" = """&split(itemlist(i),":")(1)&"""" &chr(13)&chr(10)<br /> next<br /> execute execstr<br />end function<br />'測試函數<br />sub ceshi3<br />dim i,o1<br /> for i = 0 to 10000<br /> set o1 = getobjcon(str1)<br /> response.write o1.shiyang&"<br>"<br /> next<br /> set o1 = getobjcon(str2)<br /> response.write o1.shuming&"<br>"</p><p>end sub<br />dim t1<br />t1=timer()<br />call ceshi3<br />response.write FormatNumber((timer()-t1),4,-1)<br />