JScript de objeto
Todos os objetos JScript com base na Object suporte do objeto expando propriedades ou propriedades que podem ser adicionadas e removidas enquanto o programa estiver sendo executado.
Usando o objeto
Essas propriedades podem ter qualquer nome, incluindo os números. Um nome de uma propriedade que é um identificador simple pode ser gravado após um período que segue o nome do objeto, como:
var myObj = new Object();
// Add two expando properties, 'name' and 'age'
myObj.name = "Fred";
myObj.age = 53;
Você também pode acessar as propriedades de um objeto usando o operador de índice, []. Isso é necessário se o nome da propriedade não é um identificador simples, ou se o nome da propriedade não for conhecido quando você escreve o script. Uma expressão arbitrária, incluindo um identificador simples, dentro de colchetes pode indexar a propriedade. Os nomes de todas as propriedades de expando no JScript são convertidos em seqüências de caracteres antes de serem adicionados ao objeto.
Ao usar o operador de índice, o objeto é tratado como uma matriz associativa. Uma matriz associativa é uma estrutura de dados que associa os valores de dados arbitrários dinamicamente as seqüências de caracteres. Neste exemplo, expando propriedades são adicionadas, que não têm identificadores simples.
var myObj = new Object();
// This identifier contains spaces.
myObj["not a simple identifier"] = "This is the property value";
// This identifier is a number.
myObj[100] = "100";
Embora o operador de índice é mais comumente associado ao acessar os elementos de matriz, o índice é sempre o nome da propriedade expresso como uma seqüência de caracteres literal, quando usada com objetos.
Arrayos objetos têm um especial comprimento propriedade muda quando novos elementos são adicionados; em geral, objetos não possuem uma propriedade de comprimento, mesmo quando o operador de índice é usado para adicionar propriedades.
Observe a diferença importante entre as duas maneiras de acessar as propriedades do objeto.
Operador |
O nome da propriedade é tratado como |
O que significa que o nome da propriedade |
---|---|---|
Ponto (.) |
Um identificador |
Não pode ser manipulada como dados |
Índice ([]) |
Uma seqüência de caracteres literal |
Podem ser manipulados como dados |
Essa diferença se torna útil quando você não souber os nomes de propriedade até que o tempo de execução (por exemplo, durante a construção de objetos com base na entrada do usuário). Para extrair todas as propriedades de uma matriz associativa, você deve usar o para... em loop.