Partager via


import, instruction

Permet d'accéder à un espace de noms contenu dans le script actuel ou dans une bibliothèque externe.

import namespace

Arguments

  • espace de noms (namespace)
    Obligatoire. Nom de l'espace de noms à importer.

Notes

L'instruction import crée une propriété sur l'objet global avec le nom précisé comme espace de nom (namespace) et l'initialise pour contenir l'objet qui correspond à l'espace de noms qui est importé. Les propriétés créées avec l'instruction import ne peuvent pas être assignées, supprimées ou énumérées. Toutes les instructions import sont exécutées lors du démarrage d'un script.

L'instruction import rend un espace de noms accessible à votre script. L'espace de noms peut être défini dans le script avec l'instruction package ou fourni par un assembly externe. Si JScript ne trouve pas l'espace de noms dans le script, JScript recherche un assembly qui correspond au nom de l'espace de noms dans les répertoires d'assembly spécifiés, sauf si le programme est en cours de compilation et que l'option /autoref est désactivée. Par exemple, si vous importez l'espace de noms Acme.Widget.Sprocket et que celui-ci n'est pas défini dans le script actuel, JScript recherche l'espace de noms dans les assemblys suivants :

  • Acme.Widget.Sprocket.dll

  • Acme.Widget.dll

  • Acme.dll

Vous pouvez spécifier explicitement le nom de l'assembly à inclure. C'est nécessaire si l'option /autoref est désactivée ou si le nom de l'espace de noms ne correspond pas à celui de l'assembly. Le compilateur de ligne de commande utilise l'option /reference pour spécifier le nom de l'assembly alors qu'ASP.NET emploie les directives @Import et @Assembly pour effectuer cette opération. Par exemple, pour inclure explicitement l'assembly mydll.dll, tapez dans la ligne de commande :

jsc /reference:mydll.dll myprogram.js

Pour inclure l'assembly à partir d'une page ASP.NET, indiquez ce qui suit :

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

Lorsqu'une classe est référencée dans le code, le compilateur commence par rechercher la classe dans la portée locale. S'il ne trouve aucune classe correspondante, le compilateur recherche la classe dans les différents espaces de noms, dans l'ordre de leur importation, et s'arrête dès qu'il trouve une correspondance. Vous pouvez utiliser le nom qualifié complet de la classe pour être certain de l'espace de noms dont la classe est dérivée.

JScript n'importe pas automatiquement les espaces de noms imbriqués ; chacun d'eux doit être importé en utilisant l'espace de noms qualifié complet. Ainsi, pour accéder aux classes d'un espace de noms appelé Outer et d'un espace de noms imbriqué appelé Outer.Inner, il faut importer les deux espaces de noms.

Exemple

L'exemple suivant définit trois packages simples et importe les espaces de noms dans le script. En général, chaque package doit figurer dans un assembly distinct pour permettre la maintenance et la distribution du contenu du package.

// 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);

Le résultat généré par ce script est le suivant :

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Configuration requise

Version .NET

Voir aussi

Référence

package, instruction

/autoref

/lib

@ Assembly

@ Import