Оператор import

Позволяет получить доступ к пространству имен, которое содержится в текущем скрипте или во внешней библиотеке.

import namespace

Аргументы

  • namespace
    Обязательный. Имя пространства имен для импорта.

Заметки

Оператор import создает свойство в глобальном объекте с именем, переданным в аргументе namespace, и инициализирует его объектом, соответствующем импортируемому пространству имен. Все свойства, созданные с помощью оператора import, не могут быть удалены, перечислены, и им нельзя присвоить значение. Все операторы import выполняются при запуске скрипта.

Оператор import делает пространство имен доступным для скрипта. Пространство имен можно определить в скрипте с помощью оператора package или предоставить во внешней сборке. Если пространство имен не найдено в скрипте, JScript выполняет поиск сборки, соответствующей имени пространства имен, в указанных каталогах, если только программа не компилируется с выключенным параметром /autoref. Например, если импортируется пространство имен Acme.Widget.Sprocket и это пространство имен не определено в текущем скрипте, JScript будет выполнять поиск пространства имен в следующих сборках:

  • Acme.Widget.Sprocket.dll

  • Acme.Widget.dll

  • Acme.dll

Можно указать имя сборки, которую требуется включить, явным образом. Это необходимо делать, если выключен параметр /autoref или имя пространства имен не совпадает с именем сборки. В компиляторе командной строки для указания имени сборки используется параметр /reference, а в среде ASP.NET для выполнения этой задачи применяются директивы @ Import и @ Assembly. Например, чтобы явно включить сборку mydll.dll, в командной строке следует ввести следующую команду:

jsc /reference:mydll.dll myprogram.js

Чтобы включить сборку на странице ASP.NET, используется следующий код:

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

Если в коде имеется ссылка на класс, компилятор сначала выполняет поиск этого класса в локальной области видимости. Если соответствующий класс не найден, компилятор выполняет поиск класса в каждом пространстве имен в том порядке, в котором они импортируются, и прекращает поиск при первом обнаружении соответствия. Можно точно указать, от какого пространства имен наследует класс, используя полное имя класса.

JScript не выполняет автоматический импорт вложенных пространств имен; каждое пространство имен должно быть импортировано с помощью полного имени этого пространства. Например, чтобы получить доступ к классам из пространства имен Outer и вложенного пространства имен Outer.Inner, необходимо импортировать оба пространства имен.

Пример

В следующем примере определяются три простых пакета и импортируются пространства имен в скрипт. Как правило, каждый пакет является отдельной сборкой, чтобы обеспечить обслуживание и распространение содержимого пакета.

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

При выполнении этого скрипта выводится следующий результат:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Требования

Версия .NET

См. также

Ссылки

Оператор package

/autoref

/lib

@ Assembly

@ Import