JavaScript · Avançado · Português · Técnico
descritor de propriedade
Objeto que descreve os atributos de uma propriedade: value, writable, enumerable e configurable, ou get e set. É definido e lido por Object.defineProperty e Object.getOwnPropertyDescriptor.
Onde usar
Usado para criar propriedades somente leitura, ocultas ou calculadas. Em code review, aparece em bibliotecas e polyfills, onde os atributos omitidos no defineProperty valem false.
Em código
const o = {};
Object.defineProperty(o, 'id', {
value: 7,
enumerable: false,
});
console.log(o.id, Object.keys(o)); // 7 []
o.id = 8; // ignorado, sem strict mode
console.log(o.id); // 7Exemplos
Usei o descritor de propriedade para deixar o campo somente leitura.
Com enumerable falso, o campo some do Object.keys.
Cuidado
Esquecer que defineProperty assume writable, enumerable e configurable como false quando omitidos.
Sinônimos
property descriptor