Windows Script Components  

Referenciar otro componente de secuencia de comandos del mismo paquete

Puede crear un paquete que contenga varios componentes de secuencia de comandos, de modo que también pueda crear una instancia y utilizar uno de los componentes de secuencia de comandos sin tener que registrar el componente de secuencia de comandos.

Por ejemplo, podría crear un componente de secuencia de comandos que implemente la interfaz de automatización y exponga una serie de propiedades y métodos. Un segundo componente de secuencia de comandos del paquete podría implementar la interfaz ASP, que proporciona acceso al modelo de objetos de servidor para Microsoft® Internet Information Services (IIS). Después podría crear un método o una propiedad en el componente de secuencia de comandos de automatización que exponga el componente de secuencia de comandos ASP y haga disponibles sus miembros.

Para hacer referencia a un componente de secuencia de comandos desde otro, cree un miembro de esquema (una propiedad o un método) en un método que exponga el segundo componente de secuencia de comandos.

Para hacer referencia a otro componente de secuencia de comandos del mismo archivo componente de secuencia de comandos

  1. Declare una propiedad o un método en el primer componente de secuencia de comandos.
  2. Como parte de la definición de la nueva propiedad o método, llame a la función     createComponent.

    Por ejemplo, a continuación se muestran dos componentes de secuencia de comandos en el mismo paquete. En el primer componente de secuencia de comandos, el método math hace referencia al segundo, que expone los métodos add y multiply.

    Nota   Es necesario incluir una sección CDTA para hacer opaca la secuencia de comandos del elemento <script>. Para obtener más información, consulte Archivos de componentes de secuencia de comandos y compatibilidad XML.
    <?XML version="1.0"?>
    <package>
    <component id="component1">
    <registration progid="Component.FrontEnd"/>
    <public>
       <property name="math"/>
    </public>
    <script language="JScript">
    <![CDATA[
    var math = createScriptlet("scriptlet2")
       ]]>
    </script>
    </component>
    <component id="component2">
    <registration progid="Component.Math"/>
    <public>
       <method name="add"/>
       <method name="multiply"/>
    </public>
    <script language="JScript">
    <![CDATA[
    function add(n1, n2){
       return n1+n2;
    }
    function multiply(n1, n2){
       return n1*n2;
    }
    ]]>
    </script>
    </component>
    </package>

Para invocar al componente de secuencia de comandos de referencia, llame a la jerarquía de miembros completa para obtener los métodos o propiedades. El ejemplo siguiente muestra unas formas de hacerlo:

' Crea una instancia del primer componente de secuencia de comandos.
set o1 = CreateObject("componente de secuencia de comandos.FrontEnd")

' Invoca directamente las funciones del segundo componente de secuencia de comandos.
msgbox(o1.math.add(3,5))
msgbox(o1.math.multiply(3,5))

' Crea un segundo objeto que hace referencia directamente al método math.
Set o2 = o1.math()
msgbox(o2.add(4,5))
msgbox(o2.multiply(4,5))

Cada vez que se llama a la función createComponent(), crea una instancia nueva del componente de secuencia de comandos de referencia. Si necesita conservar la información de instancias entre llamadas, almacene el puntero al segundo componente de secuencia de comandos en una variable global, como en el ejemplo siguiente.

Nota   Es necesario incluir una sección CDATA para hacer opaca la secuencia de comandos del elemento <script>. Para obtener más información, consulte Archivos de componentes de secuencia de comandos y compatibilidad XML.
<component id="component1">
<registration progid="Component.FrontEnd"/>
<public>
   <property name="math">
      <get/>
   </property>
</public>
<script language="JScript">
<![CDATA[
var m = createComponent("component2")
function get_math(){
   return m
}
   ]]>
</script>
</component>

(Component2 como en el ejemplo anterior)    

Consulte también

Contenido de los archivos de componentes de secuencia de comandos | Elemento <package> | Elemento <component>

Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.