다음을 통해 공유


import 문

업데이트: 2007년 11월

현재 스크립트 또는 외부 라이브러리에 포함된 네임스페이스에 액세스할 수 있게 합니다.

import namespace

인수

  • namespace
    필수적 요소. 가져올 네임스페이스의 이름입니다.

설명

import 문은 네임스페이스로 제공된 이름으로 전역 개체에 속성을 만들고, 가져오고 있는 네임스페이스과 일치하는 개체를 포함하도록 초기화합니다. import 문을 사용하여 만든 속성은 할당, 삭제 또는 열거할 수 없습니다. 스크립트가 시작될 때 모든 import 문이 실행됩니다.

import 문을 사용하면 스크립트에서 네임스페이스를 사용할 수 있습니다. 네임스페이스는 package 문을 사용하여 스크립트에 정의하거나 외부 어셈블리에서 제공될 수 있습니다. 프로그램이 컴파일되고 있거나 /autoref 옵션이 해제된 경우가 아니면 스크립트 내에서 네임스페이스를 찾을 수 없을 때 JScript는 지정한 어셈블리 디렉터리에서 해당 네임스페이스의 이름과 일치하는 어셈블리를 검색합니다. 예를 들어, 현재 스크립트에 정의되지 않은 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