В каком порядке уничтожаются объекты в .vbs?
То есть, учитывая эти глобальные переменные:
Set x = New Xxx
Set y = New Yyy
Меня интересуют ответы на любые из следующее.
Для экземпляров классов, реализованных в .VBS, в каком порядке будет вызываться Class_Terminate
? Беглое тыкание предлагает в порядке ( не обратный порядок!) Создания, но гарантируется ли это?
EDIT : Я понимаю, что Class_Terminate
будет вызываться, когда последний освобождается последняя ссылка на объект. Я имел в виду: в каком порядке будут выпущены x и y и гарантируется ли это? Предположим для простоты, что x и y - единственные ссылки на соответствующие объекты .
Имеет ли значение тип объекта? например, если у меня есть классы, реализованные в .VBS, смешанные с другими COM-объектами, такими как Scripting.FileSystemObject
.
EDIT : я понимаю, что COM-библиотека может создавать свои собственные внутренние циклические ссылки что механизм хоста сценария ничего не знает; Мне интересно узнать, что может повлиять на ответ на первый вопрос.
WScript.Quit
? (В последнем случае кажется, что Class_Terminate
по-прежнему вызывается для любых невыполненных объектов перед выходом, однако это может вызвать сообщение об ошибке). Я могу найти ответы на некоторые из этих вопросов эмпирически, но мне интересно в том, являются ли какие-либо из них гарантированными / задокументированными.
Публикуйте сообщения, даже если вы знаете только некоторые ответы - или другие важные вопросы.