¿Cómo puedo usar las clases OO de Javascript de VBScript, en un entorno ASP-Classic o WSH?
Lo séPuedo llamar a las funciones de nivel superior definidas en JS desde VBScripty viceversa, así:
<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>
También puedo incluir JS en los módulos de VBScript, como este:
<code><%@ language="VBScript" %> <script language="Javascript" runat="server" src="includedModule.js"></script> <script language="VBScript" runat="server"> .... </script> </code>
... y las funciones definidas en includedModule.js están disponibles en VBScript.
Pero supongamos que tengo una clase de Javascript definida utilizando prototipos OO, como esto:
<code>(function() { MyObj = function() { this.foo = ... ... }; MyObj.prototype.method1 = function() { .. }; MyObj.prototype.method2 = function() { .. }; }()); </code>
¿Cómo puedo usar ese objeto (también conocido como tipo o clase) de VBScript?
El enfoque de la vainilla ...
<code>Dim foo Set foo = New MyObj </code>
...No funciona.
Tampoco lo hace
<code>Dim foo foo = MyObj() </code>
... porque al parecerthis
no se define cuando la función JS se invoca desde VBScript. O algo.
Entonces, ¿cómo puedo hacerlo?
La razón es valiosa: hay bibliotecas OO disponibles en Javascript, que serían interesantes de usar desde VBScript.