.vbs 中的对象以什么顺序被销毁?
也就是说,给定这些全局变量:
Set x = New Xxx
Set y = New Yyy
我对以下任何问题的答案感兴趣。
对于在 .VBS 中实现的类的实例,将以什么顺序
Class_Terminate
调用?粗略戳建议按创建的顺序(而不是相反的顺序!),但这能保证吗?编辑:我知道
Class_Terminate
在释放对对象的最后一个引用时会调用它。我的意思是:x 和 y 会以什么顺序被释放,并且有保证吗?为简单起见,假设 x & y 是对其各自对象的唯一引用。对象的类型重要吗?例如,如果我在 .VBS 中实现了与其他 COM 对象(例如
Scripting.FileSystemObject
.编辑:我知道 COM 库可能会设置自己的内部循环引用,脚本主机引擎对此一无所知;我有兴趣探索什么会影响第一个问题的答案。
如果 x 和 y 是 Sub 或 Function 的本地而不是全局的,那么上述答案是否不同?
是否取决于退出是正常的、异常的还是通过的
WScript.Quit
?(在后一种情况下,似乎Class_Terminate
在退出之前仍然会调用任何未完成的对象,但是这些可能会导致报告错误)。WScript 对象何时被销毁?
脚本宿主重要吗?(wscript.exe 与 cscript.exe 与任何 Web 主机引擎被调用)
JScript 的对象破坏模型与 VBScript 的不同吗?
我可以凭经验找到其中一些问题的答案,但我对它们中的任何一个是否得到保证/记录感兴趣。
即使您只知道一些答案或其他相关问题,也要发布。