我一直在网上寻找一种方法来制作一个vbscript函数来返回我创建的对象:
<%
dim myArray(5)
set myArray(5) = new MyClass
for i = 0 to 5
response.write("i :" & i & "<br/>")
set myArray(i) = new MyClass
myArray(i).MyText = "Number " & i
next
class MyClass
public MyText
End class
function getMyClass(text)
set getMyClass = new MyClass
getMyClass.MyText = text
end function
response.write(getmyclass("Here!").mytext & "<br/>")
function getMyArray(number)
response.write("check: " & myArray(number).MyText & "<br/>")
set getMyArray = new MyClass
getMyArray = myArray(number)
end function
response.write(getMyArray(1).mytext)
%>
这是我得到的错误:
Microsoft VBScript运行时错误“800a01b6”
Object不支持此属性或方法
/ carousel classes / funcarray.asp,第32行
它指的是函数“getMyArray(number)”
答案 0 :(得分:1)
我不得不重新编码以使其正常工作......
<%
dim myArray(5), i
for i = 0 to 5
response.write("i :" & i & "<br/>")
set myArray(i) = new MyClass
myArray(i).MyText = "Number " & i
next
class MyClass
public MyText
End class
function getMyClass(text)
dim rv
set rv = new MyClass
rv.MyText = text
set getMyClass = rv
end function
response.write(getmyclass("Here!").mytext & "<br/>")
function getMyArray(number)
response.write("check: " & myArray(number).MyText & "<br/>")
set getMyArray = myArray(number)
end function
response.write(getMyArray(1).mytext)
%>
注意:
我删除了第二行,因为它没有按照你的想法行事。
我发现getMyClass
函数的问题在于,只要Set
函数名称,就会返回值,并且不会将值传递给MyText
字段。
第二个函数几乎就在那里,只需要将函数名称Set
添加到其中一个预定义的数组条目中。