Дескрипторы свойств объектов (property descriptors) - это объекты, которые описывают, какое поведение должно быть у свойства объекта при чтении, записи или удалении свойства. Они используются для более тонкой настройки свойств объектов в JavaScript.

Дескрипторы свойств включают следующие свойства:

  1. value - значение свойства;
  2. writable - является ли свойство доступным для записи (true/false);
  3. enumerable - является ли свойство доступным для перечисления (true/false);
  4. configurable - является ли свойство доступным для удаления и изменения свойств (true/false);
  5. get - функция, вызываемая при чтении значения свойства;
  6. set - функция, вызываемая при записи значения свойства.

Дескрипторы свойств позволяют изменять поведение свойств объектов при различных операциях, например, запрещать изменение или удаление свойства, скрывать свойство от перечисления, создавать свойства с геттерами и сеттерами и т.д.

Для настройки дескрипторов свойств объектов в JavaScript используются методы Object.defineProperty() и Object.defineProperties(), которые позволяют определять новые свойства или изменять существующие свойства объектов. Например, вот как можно определить свойство name объекта person с помощью дескрипторов свойств:

var person = {}
 
Object.defineProperty(person, "name", {
  value: "John",
  writable: false,
  enumerable: true,
  configurable: false,
})
 
console.log(person.name) // 'John'
person.name = "Mike" // TypeError: Cannot assign to read only property 'name' of object '#<Object>'
delete person.name // TypeError: Cannot delete property 'name' of #<Object>

В этом примере свойство name объекта person определено с помощью дескрипторов свойств, которые запрещают изменение и удаление свойства.


Назад