mrT*_*awk 15 windows vbscript wsh
有没有人知道使用该选项背后的原因:
Wscript.CreateObject("some.object")
Run Code Online (Sandbox Code Playgroud)
和
CreateObject("some.object")
Run Code Online (Sandbox Code Playgroud)
在VBScript中?当我找到使用的文档或示例时Wscript.CreateObject,我通常会重写使用CreateObject,因为它似乎总是有效,然后我可以轻松地重用HTA或ASP中的代码.但我一直想知道为什么这个功能存在,如果你在VBScript中使用这种或那种方式会有什么不同.
小智 27
当你用一个参数调用它们时,两者之间没有区别.做同样的事情.
如果您使用两个参数调用,则两者之间的差异仅在证据中.声明
Wscript.CreateObject("some.object", "AnotherParam")
Run Code Online (Sandbox Code Playgroud)
和
CreateObject("some.object", "AnotherParam")
Run Code Online (Sandbox Code Playgroud)
做完全不同的事情:
VBScript CreateObject函数将第二个参数解释为远程计算机名称,并尝试在该远程计算机上创建命名的COM对象; 在此示例中,它尝试在名为"AnotherParam"的远程计算机上使用ProgId"some.object"实例化对象的实例.WScript CreateObject方法将第二个参数解释为子例程前缀,用于处理来自对象的事件.两个GetObject函数类似地相关.
(改编自TechNet,"使用WSH比较VBScript CreateObject和GetObject函数"一节.)
我想该WScript对象具有该CreateObject方法,因此任何Windows脚本语言都可以创建COM对象.
VBScript具有作为全局函数的能力,但其他Windows Script主机语言可能不具备.
例如,JScript没有全局CreateObject函数(我相信)(但它确实有一个var a = new ActiveXObject("...")语法,所以你也不需要WScript.CreateObject在JScript中使用).
我猜这两个函数没有区别.
编辑:有是一个差异(但只有当你试图实例化远程主机上的DCOM对象),看到@Thomas彼得森答案.
| 归档时间: |
|
| 查看次数: |
34042 次 |
| 最近记录: |