Wie kann ich Javascript OO-Klassen aus VBScript in einer ASP-Classic- oder WSH-Umgebung verwenden?
Ich kenneIch kann in JS definierte Funktionen der obersten Ebene aus VBScript aufrufenund umgekehrt so:
<code><%@ 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> </code>
Ich kann JS auch wie folgt in VBScript-Module einbinden:
<code><%@ language="VBScript" %> <script language="Javascript" runat="server" src="includedModule.js"></script> <script language="VBScript" runat="server"> .... </script> </code>
... und die in includedModule.js definierten Funktionen sind im VBScript verfügbar.
Angenommen, ich habe eine Javascript-Klasse definiert, die prototypische OO verwendet, wie folgt:
<code>(function() { MyObj = function() { this.foo = ... ... }; MyObj.prototype.method1 = function() { .. }; MyObj.prototype.method2 = function() { .. }; }()); </code>
Wie kann ich dieses Objekt (auch als Typ oder Klasse bezeichnet) aus VBScript verwenden?
Der Vanille-Ansatz ...
<code>Dim foo Set foo = New MyObj </code>
...funktioniert nicht.
Auch nicht
<code>Dim foo foo = MyObj() </code>
... weil anscheinendthis
ist nicht definiert, wenn die JS-Funktion von VBScript aus aufgerufen wird. Oder so.
Wie kann ich das machen?
Der Grund dafür ist wertvoll: Es gibt OO-Bibliotheken in Javascript, deren Verwendung mit VBScript interessant wäre.