As propriedades dos objetos no ES5 podem ser divididas em 'atributos de dados' e 'atributos de acessórios'.
Os atributos de dados são geralmente usados para armazenar valores de dados. Os atributos do acessador correspondem às operações do Definir/Get e os valores de dados não podem ser armazenados diretamente.
Características do atributo de dados: valor, gravável, enumerável, configurável.
Explicação: Configurável: True/False, se o atributo pode ser excluído por meio de exclusão, se as características do atributo podem ser modificadas e se o atributo pode ser modificado para o atributo acessador, padrão false;
enumerável: verdadeiro/falso, se pode ser devolvido através de um loop em loop, padrão false;
Redável: verdadeiro/falso, se o valor do atributo pode ser modificado, o padrão é falso;
Valor: indefinido, defina o valor da propriedade, padrão indefinido.
Atributos do acessador: Defina, obtenha, enumerável, configurável.
Explicação: Configurável: True/False, se o atributo pode ser excluído por meio de exclusão, se as características do atributo podem ser modificadas e se o atributo pode ser modificado para o atributo acessador, padrão false;
enumerável: verdadeiro/falso, se pode ser devolvido através de um loop em loop, padrão false;
SET: Função, função chamada ao ler valores de propriedades;
GET: função, função chamada ao modificar o valor da propriedade.
Adicione propriedades aos objetos ou modifique as propriedades das propriedades existentes usando o método Object.DefineProperty () ou Object.DefineProperties ();
Object.DefineProperty (Object, PropertyName, Descritor):
Parâmetro Explicação: Objeto: um objeto que precisa adicionar ou modificar atributos;
PropertyName: o nome da propriedade, formato de string;
Descritor: Descrição dos atributos, definindo propriedades dos atributos de dados ou atributos de acessórios.
Exemplo de análise:
Propriedades de dados:
var emp = {name: 'Tom'}; Object.DefineProperty (EMP, 'Nome', {Writable: false}); emp.name = 'jery'; console.log (emp.name); // saída de tom, porque winditable foi definido como falsobject.DefineProperty (EMP, 'idade', {configable.Og.ELOG.ELEOG.DefiG.Define: 22); O valor é definido como 22emp.age = 25; console.log (emp.age); // saída 25, configuração gravável é troudelete emp.age; console.log (emp.age); // saída 25, configurável é definido como falso, esta propriedade não pode ser deletadaPropriedades do acessador:
var emp = {_ nome: 'tom', _ idade: 20}; object.DefineProperty (emp, 'nome', {get: function () {return this._name;}}); console.log (emp.name); //, retorna o valor de _name pelo método get emp.nam Tom, sem um método de conjunto, o valor de _name não pode ser modificado objeto.DefineProperty (EMP, 'Age', {Configurável: true, get: function () {return this._age;} set: function (idade) {this._age = idade;}}); eMP.AGe = 25; emp) {emp. Método, Emp.age é ler _age usando o método get excluir emp.age; console.log (emp.age); // saída indefinida, configurável é verdadeiro, você pode usar o método de exclusão para excluir o atributo EMP.AGENota: O atributo do acessador pode desempenhar um bom papel na proteção. Quando existe apenas o método GET, ele é somente leitura e não pode escrever; Pelo contrário, quando existe apenas o conjunto, ele só pode escrever, mas não lê.
O exposto acima é a breve discussão dos atributos de dados JavaScript e atributos de acessórios que o editor traz para você. Espero que todos apoiem mais wulin.com ~