Instrução import
Permite o acesso a um namespace contido dentro do script atual ou em uma biblioteca externa.
import namespace
Argumentos
- namespace
Obrigatório. Nome do namespace para importar.
Comentários
O Importar instrução cria uma propriedade no objeto global com o nome fornecido como namespace e o inicializa para conter o objeto que corresponde ao namespace que está sendo importado. Quaisquer propriedades criados com o Importar declaração não pode ser atribuída a, excluída ou enumerada. Todos os Importar instruções são executadas quando um script é iniciado.
O Importar instrução disponibiliza um espaço para nome para o seu script. O espaço para nome pode ser definido no script usando o pacote instrução ou um assembly externo pode fornecer. Se o espaço para nome não for encontrado dentro do script, JScript procura um assembly que coincide com o nome do namespace em diretórios de assembly especificado, a menos que o programa está sendo compilado e a opção /autoref estiver desativada. Por exemplo, se você importar o namespace Acme.Widget.Sprocket e o namespace não é definido dentro do script atual, JScript irá procurar o espaço para nome nos assemblies do seguintes:
Acme.Widget.Sprocket.dll
Acme.Widget.dll
Acme.dll
Você pode especificar o nome do assembly para incluir explicitamente. Isso deve ser feito se a opção /autoref estiver desativada ou se o nome do namespace não corresponde ao nome de assembly. O compilador de linha de comando usa a opção /reference para especificar o nome do assembly, enquanto ASP.NET usa o @ Import e @ Assembly diretivas para fazer isso. Por exemplo, para incluir explicitamente o mydll.dll de montagem da linha de comando digite
jsc /reference:mydll.dll myprogram.js
Para incluir o assembly de um ASP.NET página, você usaria
<%@ Import namespace = "mydll" %>
<%@ Assembly name = "mydll" %>
Quando uma classe é mencionada no código, o compilador procura primeiro a classe no escopo local. Se o compilador não encontra nenhuma classe correspondente, o compilador procura a classe em cada espaço para nome, na ordem em que foram importados e pára quando encontra uma correspondência. Você pode usar o nome totalmente qualificado da classe para ter certeza de qual namespace a classe deriva.
JScript não importa automaticamente namespaces aninhados. cada namespace deve ser importado usando o espaço para nome totalmente qualificado. Por exemplo, para classes de acesso a partir de um namespace chamado Outer e um namespace aninhado chamado Outer.Inner, ambos os espaços para nome devem ser importados.
Exemplo
O exemplo a seguir define três pacotes simples e importa os namespaces no script. Normalmente, cada pacote seria em um assembly separado para permitir a manutenção e a distribuição do conteúdo do pacote.
// 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);
A saída desse script é:
Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter