我知道我可以从 VBScript 调用 JS 中定义的顶级函数,反之亦然,如下所示:
<%@ language="Chakra" %>
<script language='JavaScript' runat='server'>
function jsFunction1() {
for (var i=0;i<10;i++) Response.Write(i+"<br>");
vbFunction2();
}
</script>
<script language='VBScript' runat='server'>
Sub vbFunction1 ()
Response.Write("VB Hello <br/>" & VbCrLf)
jsFunction1()
End Sub
Sub vbFunction2 ()
Response.Write("VB Goodbye <br/>" & VbCrLf)
End Sub
</script>
<script language="JavaScript" runat="server">
vbFunction1();
</script>
我还可以将 JS 包含到 VBScript 模块中,如下所示:
<%@ language="VBScript" %>
<script language="Javascript" runat="server" src="includedModule.js"></script>
<script language="VBScript" runat="server">
....
</script>
...并且在 includedModule.js 中定义的函数在 VBScript 中可用。
但是假设我有一个使用原型 OO 定义的 Javascript 类,如下所示:
(function() {
MyObj = function() {
this.foo = ...
...
};
MyObj.prototype.method1 = function() { .. };
MyObj.prototype.method2 = function() { .. };
}());
如何从 VBScript 中使用该对象(又名类型或类)?
香草方法...
Dim foo
Set foo = New MyObj
...不起作用。
也没有
Dim foo
foo = MyObj()
...因为this
从 VBScript 调用 JS 函数时显然没有定义。或者其他的东西。
那么我该怎么做呢?
这很有价值的原因是:Javascript 中有可用的 OO 库,从 VBScript 中使用会很有趣。