Descriptores de propiedades de JavaScript

Una explicación de los descriptores de propiedades y para qué son útiles.

Cualquier objeto en JavaScript tiene un conjunto de propiedades, y cada una de estas propiedades tiene undescriptor.

Este es un objeto que define un comportamiento de propiedad y propiedades propias.

Muchos métodos estáticos de objetos interactúan con él. Esos métodos incluyen:

A continuación, se muestra un ejemplo de un objeto descriptor de propiedad:

{
  value: 'Something'
}

Este es el más simple.valuees el valor de la propiedad, en una definición de clave-valor. Estakeyse define como la clave del objeto, cuando define esta propiedad en un objeto:

{
  breed: {
    value: 'Siberian Husky'
  }
}

Ejemplo:

const animal = {}
const dog = Object.create(animal, {
  breed: {
    value: 'Siberian Husky'
  }
});
console.log(dog.breed) //'Siberian Husky'

Puede pasar propiedades adicionales para definir cada propiedad de objeto diferente:

  • valor: El valor de la propiedad
  • escribible: cierto, la propiedad se puede cambiar
  • configurable: si es falso, la propiedad no se puede eliminar ni se puede cambiar ningún atributo, excepto su valor
  • enumerable: verdadero si la propiedad es enumerable
  • obtener: una función getter para la propiedad, llamada cuando se lee la propiedad
  • colocar: una función de establecimiento para la propiedad, llamada cuando la propiedad se establece en un valor

writable,configurableyenumerableestablecer el comportamiento de esa propiedad. Tienen un valor booleano y, por defecto, son todosfalse.

Ejemplo:

const animal = {}
const dog = Object.create(animal, {
  breed: {
    value: 'Siberian Husky',
    writable: false
  }
});
console.log(dog.breed) //'Siberian Husky'
dog.breed = 'Pug' //TypeError: Cannot assign to read only property 'breed' of object '#<Object>'

Más tutoriales de js: