Тема: VBScript: использование собственных классов
VBScript поддерживает концепцию объектов и позволяет объявлять классы и создавать их экземпляры. Однако VBScript не поддерживает концепции наследования и полиморфизма. Из-за этих ограничений VBScript называют основанным на объектах (Object Based), а не полностью объектно-ориентированным (Object Oriented) языком. Впрочем, несмотря на ограничения, существует возможность до какой-то степени имитировать наследование, используя при этом так называемую технику делегирования, о которой будет сказано ниже.
В VBScript класс объявляется при помощи оператора Class:
Class Foo
Private FooAttribute
Public Sub FooSub()
MsgBox "Foo.FooSub"
End Sub
Public Function FooFunction()
MsgBox "Foo.FooFuncion"
FooFunction = "value"
End Function
End Class
Данный код объявляет новый класс под названием Foo со свойством FooAttribute. Поскольку атрибут задается при помощи ключевого слова Private, он будет виден только для методов, расположенных внутри класса. Если вы хотите, чтобы атрибут был доступен вне класса, попробуйте применить ключевое слово Public. Однако объявление атрибутов как Private и использование для доступа к ним Properties, является хорошей практикой программирования, позволяющей проверять данные перед тем, как они записываются (задаются) или считываются.
Для того чтобы в VBScript создать экземпляр объекта, необходимо использовать ключевые слова Set и New. Также хорошей практикой является объявление переменных при помощи ключевого слова Dim, как этого требует инструкция Option Explicit.
Dim objFoo
Set objFoo = New Foo
Данный код создает экземпляр класса, объявленного в предыдущем примере, и присваивает его переменной objFoo.
Обращение к членам класса осуществляется при помощи точки:
Dim myValue
objFoo.FooSub()
myValue = objFoo.FooFunction()
MsgBox "myValue = " & myValue
В данном коде вызываются два метода, объявленные в определении класса. В первом случае никакого значения не возвращается (метод-процедура), а во втором случае переменной myValue присваивается возвращаемое значение (метод-функция).
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.