Это невозможно с использованием VBScript, если вы не хотите динамически генерировать код для класса, включая свойства, сохранять его в файл и затем выполнять этот файл как скрипт.
Это намного прощеделать с помощью JScript.Поскольку Windows Scripting может работать как с JScript, так и с VBScript, я бы рекомендовал пойти по этому пути.
Если вам определенно нужен VBScript, лучше всего использовать Scripting.Dictionary, который будет содержать свойства в качестве ключей:
Dim dicUser
dicUser = CreateObject("Scripting.Dictionary")
dicUser("FirstName") = objUser.FirstName
, что позволит вам получить доступ к имени следующим образом:
dicUser("FirstName")
Обновление
Если вы хотитенаписать функцию, которая создает словарь и возвращает его, вот как это сделать в VBScript:
Function RememberTheUser(Request)
Dim dicResult
Set dicResult = CreateObject("Scripting.Dictionary")
dicResult("FirstName") = Request.GetTheFirstName
Set RememberTheUser = dicResult
End Function
, который затем может быть присвоен другой переменной:
Dim dicUser ' in the main section of the script, this means it's a global variable
Sub onPreCreate(Request)
' ...
Set dicUser = RememberTheUser(Request)
' ...
End Sub
Sub onSomethingLater()
WScript.Echo dicUser("FirstName") ' It's still accessible here
End Sub
В JScript это намного проще: просто создайте новый объект и добавьте новые свойства.
function readObject(dataSource) {
var result = {};
result.source = dataSource;
result.firstName = dataSource.firstName;
result['lastName'] = dataSource.FunctionThatGetsLastName();
}
Обратите внимание, что в JScript доступ к свойствам объекта можно получить с помощью нотации object.property
, но также череззапись object['property']
, которая очень полезна, когда у вас есть свойства с динамическим именем.('property'
во второй записи является строкой и может быть заменено любым выражением, которое возвращает строку).