import (Instrucción)

Actualización: noviembre 2007

Permite el acceso al espacio de nombres contenido en la secuencia de comandos actual o en una biblioteca externa.

import namespace

Argumentos

  • namespace
    Necesario. Nombre del espacio de nombres que se importa.

Comentarios

La instrucción import crea una propiedad en el objeto global con el nombre proporcionado como espacio de nombres y lo inicializa para que contenga el objeto que corresponde al espacio de nombres que se va a importar. Las propiedades creadas con la instrucción import no se pueden asignar, eliminar o enumerar. Todas las instrucciones import se ejecutan cuando se inicia una secuencia de comandos.

La instrucción import hace que un espacio de nombres esté disponible para la secuencia de comandos. El espacio de nombres puede definirse en la secuencia de comandos mediante la instrucción package o bien proporcionarse con un ensamblado externo. Si no se localiza el espacio de nombres en la secuencia de comandos, JScript buscará un ensamblado que coincida con el nombre del espacio de nombres en los directorios del ensamblado especificado, a menos que se esté compilando el programa y la opción /autoref esté desactivada. Por ejemplo, si importa el espacio de nombres Acme.Widget.Sprocket y no está definido en la secuencia de comandos actual, JScript buscará el espacio de nombres en los siguientes ensamblados:

  • Acme.Widget.Sprocket.dll

  • Acme.Widget.dll

  • Acme.dll

Puede especificar explícitamente el nombre del ensamblado que se debe incluir. Esto se debe hacer si la opción /autoref está desactivada o si el nombre del espacio de nombres no coincide con el nombre del ensamblado. El compilador de la línea de comandos utiliza la opción /reference para especificar el nombre del ensamblado, mientras que ASP.NET utiliza las directivas @ Import y @ Assembly. Por ejemplo, para incluir explícitamente el ensamblado mydll.dll, se deberá escribir en la línea de comandos:

jsc /reference:mydll.dll myprogram.js

Para incluir el ensamblado desde una página ASP.NET, se deberá utilizar:

<%@ Import namespace = "mydll" %>
<%@ Assembly name = "mydll" %>

Cuando se hace referencia a una clase en el código, el compilador busca primero la clase en el ámbito local. Si el compilador no encuentra ninguna clase coincidente, la buscará en cada uno de los espacios de nombres, en el mismo orden en que se importaron, y se detendrá cuando encuentre una clase coincidente. Puede utilizar el nombre completo de la clase para estar seguro del espacio de nombres del que deriva la clase.

JScript no importa automáticamente espacios de nombres anidados; cada espacio de nombres se debe importar utilizando el espacio de nombres completo. Por ejemplo, para tener acceso a clases desde un espacio de nombres denominado Outer y un espacio de nombres anidado denominado Outer.Inner, se deberán importar ambos espacios de nombres.

Ejemplo

El siguiente ejemplo define tres sencillos paquetes e importa los espacios de nombres en la secuencia de comandos. Normalmente, cada paquete estaría en un ensamblado diferente para permitir el mantenimiento y la distribución del contenido del paquete.

// Create a simple package containing a class with a single field (Hello).
package Deutschland {
   class Greeting {
      static var Hello : String = "Guten tag!";
   }
};
// Create another simple package containing two classes.
// The class Greeting has the field Hello.
// The class Units has the field distance.
package France {
   public class Greeting {
      static var Hello : String = "Bonjour!";
   }
   public class Units {
      static var distance : String = "meter";
   }
};
// Use another package for more specific information.
package France.Paris {
   public class Landmark {
      static var Tower : String = "Eiffel Tower";
   }
};

// Declare a local class that shadows the imported classes.
class Greeting {
   static var Hello : String = "Greetings!";
}

// Import the Deutschland, France, and France.Paris packages.
import Deutschland;
import France;
import France.Paris;

// Access the package members with fully qualified names.
print(Greeting.Hello);
print(France.Greeting.Hello);
print(Deutschland.Greeting.Hello);
print(France.Paris.Landmark.Tower);
// The Units class is not shadowed, so it can be accessed with or without a fully qualified name.
print(Units.distance);
print(France.Units.distance);

El resultado de esta secuencia de comandos es:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Requisitos

Versión .NET

Vea también

Referencia

package (Instrucción)

/autoref

/lib

@ Assembly

@ Import