Como posso usar classes OO Javascript do VBScript, em um ambiente ASP-Classic ou WSH?
eu seiPosso chamar funções de nível superior definidas no JS do VBScripte vice-versa, assim:
<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>
Eu também posso incluir JS em módulos VBScript, assim:
<code><%@ language="VBScript" %> <script language="Javascript" runat="server" src="includedModule.js"></script> <script language="VBScript" runat="server"> .... </script> </code>
... e as funções definidas no includedModule.js estão disponíveis no VBScript.
Mas suponha que eu tenha uma classe Javascript definida usando prototypal OO, assim:
<code>(function() { MyObj = function() { this.foo = ... ... }; MyObj.prototype.method1 = function() { .. }; MyObj.prototype.method2 = function() { .. }; }()); </code>
Como posso usar esse objeto (também conhecido como tipo ou classe) do VBScript?
A abordagem da baunilha ...
<code>Dim foo Set foo = New MyObj </code>
...não funciona.
Nem
<code>Dim foo foo = MyObj() </code>
... porque aparentementethis
não é definido quando a função JS é invocada a partir do VBScript. Ou alguma coisa.
Então, como posso fazer isso?
A razão pela qual isso é valioso: existem bibliotecas OO disponíveis em Javascript, o que seria interessante usar a partir do VBScript.