Resumo : neste tutorial, você aprenderá sobre propriedades enumeráveis de JavaScript de um objeto.
Introdução às propriedades enumeráveis do JavaScript
Propriedades enumeráveis são iteradas usando o for...in
loop ou Objects.keys()
método.
Em JavaScript, um objeto é uma lista não ordenada de pares de valores-chave. A chave geralmente é uma string ou um símbolo . O valor pode ser um valor de qualquer tipo primitivo (string, booleano, número, indefinido ou nulo), um objeto ou uma função .
O exemplo a seguir cria um novo objeto usando a sintaxe literal do objeto :
const person = {
firstName: 'John',
lastName: 'Doe
};
Linguagem de código: PHP ( php )
O person
objeto tem duas propriedades: firstName
e lastName
.
Uma propriedade de objeto possui vários atributos internos , incluindo value
, e . Consulte as propriedades do objeto para obter mais detalhes.writable
enumerable
configurable
O enumerable
atributo determina se uma propriedade está acessível ou não quando as propriedades do objeto são enumeradas usando o for...in
loop ou Object.keys()
método.
Por padrão, todas as propriedades criadas por meio de uma atribuição simples ou de um inicializador de propriedade são enumeráveis. Por exemplo:
const person = {
firstName: 'John',
lastName: 'Doe'
};
person.age = 25;
for (const key in person) {
console.log(key);
}
Linguagem de código: JavaScript ( javascript )
Saída:
firstName
lastName
age
Neste exemplo:
- As
firstName
elastName
são propriedades enumeráveis porque são criadas por meio de um inicializador de propriedade. - A
age
propriedade também é enumerável porque é criada por meio de uma atribuição simples.
Para alterar o enumerable
atributo interno de uma propriedade, você usa o Object.defineProperty()
método. Por exemplo:
const person = {
firstName: 'John',
lastName: 'Doe'
};
person.age = 25;
Object.defineProperty(person, 'ssn', {
enumerable: false,
value: '123-456-7890'
});
for (const key in person) {
console.log(key);
}
Linguagem de código: JavaScript ( javascript )
Saída:
firstName
lastName
age
Neste exemplo, a ssn
propriedade é criada com o enumerable
sinalizador definido como false
, portanto não aparece no for...in
loop.
ES6 fornece um método propertyIsEnumerable()
que determina se uma propriedade é ou não enumerável. Retorna se true
a propriedade for enumerável; de outra forma false
. Por exemplo:
const person = {
firstName: 'John',
lastName: 'Doe'
};
person.age = 25;
Object.defineProperty(person, 'ssn', {
enumerable: false,
value: '123-456-7890'
});
console.log(person.propertyIsEnumerable('firstName')); // => true
console.log(person.propertyIsEnumerable('lastName')); // => true
console.log(person.propertyIsEnumerable('age')); // => true
console.log(person.propertyIsEnumerable('ssn')); // => false
Linguagem de código: JavaScript ( javascript )
Resumo
- Uma propriedade é enumerável se tiver o
enumerable
atributo definido comotrue
. Oobj.propertyIsEnumerable()
determina se uma propriedade é ou não enumerável. - Uma propriedade criada por meio de uma atribuição simples ou de um inicializador de propriedade é enumerável.