Jak mogę używać klas JavaScript OO z VBScript w środowisku ASP-Classic lub WSH?
wiemMogę nazwać funkcje najwyższego poziomu zdefiniowane w JS z VBScripti odwrotnie, tak:
<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>
Mogę również dołączyć JS do modułów VBScript, takich jak:
<code><%@ language="VBScript" %> <script language="Javascript" runat="server" src="includedModule.js"></script> <script language="VBScript" runat="server"> .... </script> </code>
... a funkcje zdefiniowane w includedModule.js są dostępne w VBScript.
Ale załóżmy, że mam klasę Javascript zdefiniowaną przy użyciu prototypowego obiektu OO, tak jak poniżej:
<code>(function() { MyObj = function() { this.foo = ... ... }; MyObj.prototype.method1 = function() { .. }; MyObj.prototype.method2 = function() { .. }; }()); </code>
Jak mogę użyć tego obiektu (aka typu lub klasy) z VBScript?
Podejście waniliowe ...
<code>Dim foo Set foo = New MyObj </code>
...nie działa.
Ani nie
<code>Dim foo foo = MyObj() </code>
... ponieważ najwyraźniejthis
nie jest zdefiniowane, gdy funkcja JS jest wywoływana z VBScript. Lub coś.
Więc jak mogę to zrobić?
Powód, dla którego jest to cenne: istnieją biblioteki OO dostępne w Javascript, które mogłyby być interesujące z VBScript.