Рубрики
Без рубрики

Дескрипторы свойств JavaScript

Объяснение дескрипторов свойств и для чего они полезны

Любой объект в JavaScript имеет набор свойств, и каждое из этих свойств имеет дескриптор .

Это объект, который определяет поведение свойства и собственные свойства.

С ним взаимодействуют многие статические методы объектов. Эти методы включают в себя:

  • Эти методы включают в себя: ()
  • Объект.Определяющие свойства()
  • Объект.Определение свойства()
  • Объект.getOwnPropertyDescriptor()
  • Объект.getownpropertydescriptor()

Вот пример объекта дескриптора свойства:

{
  value: 'Something'
}

Это самый простой вариант. значение – это значение свойства в определении значения ключа. Этот ключ определяется как ключ объекта, когда вы определяете это свойство в объекте:

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

Пример:

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

Вы можете передать дополнительные свойства для определения каждого отдельного свойства объекта:

  • значение : значение свойства
  • доступно для записи : true свойство может быть изменено
  • настраиваемый : если значение равно false, свойство не может быть удалено, и ни один атрибут не может быть изменен, кроме его значения
  • перечислимый : значение true, если свойство перечислимо
  • get : функция получения для свойства, вызываемая при чтении свойства
  • set : функция настройки для свойства, вызываемая, когда для свойства установлено значение

доступный для записи , настраиваемый и перечисляемый задает поведение этого свойства. Они имеют логическое значение, и по умолчанию все они false .

Пример:

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 '#'

Оригинал: “https://flaviocopes.com/javascript-property-descriptors/”