O ECMA-262 define um objeto como: "Uma coleção de atributos não ordenados cujos atributos podem conter valores, objetos ou funções básicos".
A maneira mais fácil de entender um objeto é criar uma instância de um objeto e depois adicionar propriedades e métodos
A cópia do código é a seguinte:
var pessoa = new Object ();
pessoa.name = "xulei";
pessoa.age = "23";
pessoa.job = "engenheiro front-end";
pessoa.SayName = function () {
alerta (this.name);
}
Você também pode escrever isso
A cópia do código é a seguinte:
var pessoa = {
Nome: "Xulei",
Idade: 23,
trabalho: "Projeto de front-end",
SayName: function () {
alerta (this.name)
}
}
1. Tipo de atributo: atributos de dados e acesse seus atributos
1. Atributos de dados, com 4 características que descrevem seu comportamento
[Configurável]: indica se o atributo pode ser excluído para redefinir o atributo, se as características do atributo podem ser modificadas ou se o atributo pode ser modificado para o atributo de acessador, o valor padrão é verdadeiro
[Enumerable]: indica se o atributo pode ser retornado por in, o valor padrão é verdadeiro
[Gravável]: indica se o atributo pode ser modificado, o valor padrão é verdadeiro
[Valor]: contém o valor dos dados desta propriedade. O valor padrão é indefinido
A cópia do código é a seguinte:
var pessoa = {
Nome: "Xulei"
}
Um objeto de pessoa é criado aqui e o valor do valor é "Xulei"
Para modificar as propriedades padrão de uma propriedade, o Object.DefineProperty do ecmascript5 (o objeto em que a propriedade está localizada, o nome da propriedade, o objeto descritor) deve ser usado)
O objeto descritor deve ser configurável, enumerável, gravável, valor
A cópia do código é a seguinte:
var peron = {}
Object.DefineProperty (Peron, "Nome", {
gravável: falso, // a propriedade não pode ser modificada
Valor: "Xu Lei-Xulei"
});
alerta (peron.name); // xulei-xulei
peron.name = "Xu Lei";
alerta (peron.name); // xulei-xulei
A operação acima será ignorada no modo não rígido e uma exceção será lançada no modo rigoroso.
Uma vez que a propriedade é definida como incansigável, ela não pode ser transformada em configuração.
Na maioria dos casos, não há necessidade de utilizar esses recursos avançados fornecidos pelo método Object.DefineProperty (). Mas é muito útil para entender o JavaScript.
Os leitores são aconselhados a não usar esse método no IE8.
2. Acesse suas propriedades, existem 4 características
[Configurável]: indica se o atributo pode ser excluído para redefinir o atributo, se as características do atributo podem ser modificadas ou se o atributo pode ser modificado para o atributo de acessador, o valor padrão é verdadeiro
[Enumerable]: indica se o atributo pode ser retornado por in, o valor padrão é verdadeiro
[Get]: Funções chamadas ao ler
[Set]: Função chamada ao escrever atributos