类默认函数中的vbscript变量范围

时间:2014-07-31 06:21:48

标签: vbscript

我有两个类,一个用class_initialise初始化,另一个用默认函数。使用默认函数的函数直接引用另一个函数。但我看不到赋予其属性的值。如果我将它们都改为使用class_initialise,它就可以了。但我需要(最终)将参数传递给初始化器,因此它是默认函数。

class cls1
    Public foo
    Private Sub Class_Initialize
        foo = "foo"
    End Sub
End Class

Class cls2
    Public Bar
    Public Default Function Init()
        Call SetBar()
        Set Init = Me
    End Function
    Private Sub SetBar()
        bar = fooclass.foo & ".bar"
    End Sub
End Class

Dim fooclass: Set fooclass = new cls1
Dim barclass: Set barclass = new cls2

现在

MsgBox fooclass.foo ' Shows "foo"
MsgBox barclass.bar ' is empty, not even ".bar"

我确信在我的屏幕上跳出一些令人震惊的简单的东西,但我无法弄清楚它究竟是什么!

1 个答案:

答案 0 :(得分:1)

Dim barclass: Set barclass = new cls2

不会调用默认方法.Init()。你可以用

Dim barclass: Set barclass = (new cls2)()

我更喜欢

Dim barclass: Set barclass = new cls2.Init()

Dim oBar : Set oBar = new cls2.Init()
相关问题