Middle+
24
0
questionbank

Что ты знаешь о дескрипторах?

Ответ от нейросети sobes.tech

Дескрипторы в JavaScript — это объекты, которые описывают различные свойства свойства объекта, такие как его значение (value), возможность записи (writable), возможность перечисления (enumerable) и возможность конфигурации (configurable). Также есть дескрипторы с геттерами и сеттерами.

Существует два типа дескрипторов:

  • Дескрипторы данных: Содержат значение свойства.

    • value: Значение свойства. Может быть любым валидным типом данных.
    • writable: Логическое значение. Если true, значение свойства можно изменить (obj.prop = newValue). По умолчанию false для accessor-свойств и true для data-свойств, созданных обычным присваиванием.
    • enumerable: Логическое значение. Если true, свойство будет видно при итерации по свойствам объекта (например, в цикле for...in или при использовании Object.keys()). По умолчанию false для свойств, добавленных Object.defineProperty, и true для свойств, созданных обычным присваиванием.
    • configurable: Логическое значение. Если true, характеристики дескриптора (кроме value и writable при их изменении с данными на аксессоры) можно изменять, а само свойство удалять. По умолчанию false для свойств, добавленных Object.defineProperty (кроме value), и true для свойств, созданных обычным присваиванием. Once configured as non-configurable, cannot be changed back. You can decrease writability from true to false, but not vice versa on a non-configurable getter/setter.
  • Дескрипторы аксессоров: Определяют функции, которые будут вызываться при получении (getter) или установке (setter) значения свойства.

    • get: Функция, вызываемая при чтении свойства. Результат этой функции становится значением свойства. Не принимает аргументов.
    • set: Функция, вызываемая при записи в свойство. Принимает одно аргумент — новое устанавливаемое значение.
    • enumerable: Логическое значение (аналогично data-дескрипторам).
    • configurable: Логическое значение (аналогично data-дескрипторам).

Дескрипторы нельзя смешивать: у свойства либо есть value и writable, либо get и set.

Дескрипторы используются для управле

Дескрипторы в JavaScript — это объекты, которые описывают различные свойства свойства объекта, такие как его значение (value), возможность записи (writable), возможность перечисления (enumerable) и возможность конфигурации (configurable). Также есть дескрипторы с геттерами и сеттерами.

Существует два типа дескрипторов:

  • Дескрипторы данных: Содержат значение свойства.

    • value: Значение свойства. Может быть любым валидным типом данных.
    • writable: Логическое значение. Если true, значение свойства можно изменить (obj.prop = newValue). По умолчанию false для accessor-свойств и true для data-свойств, созданных обычным присваиванием.
    • enumerable: Логическое значение. Если true, свойство будет видно при итерации по свойствам объекта (например, в цикле for...in или при использовании Object.keys()). По умолчанию false для свойств, добавленных Object.defineProperty, и true для свойств, созданных обычным присваиванием.
    • configurable: Логическое значение. Если true, характеристики дескриптора (кроме value и writable при их изменении с данными на аксессоры) можно изменять, а само свойство удалять. По умолчанию false для свойств, добавленных Object.defineProperty (кроме value), и true для свойств, созданных обычным присваиванием. Once configured as non-configurable, cannot be changed back. You can decrease writability from true to false, but not vice versa on a non-configurable getter/setter.
  • Дескрипторы аксессоров: Определяют функции, которые будут вызываться при получении (getter) или установке (setter) значения свойства.

    • get: Функция, вызываемая при чтении свойства. Результат этой функции становится значением свойства. Не принимает аргументов.
    • set: Функция, вызываемая при записи в свойство. Принимает одно аргумент — новое устанавливаемое значение.
    • enumerable: Логическое значение (аналогично data-дескрипторам).
    • configurable: Логическое значение (аналогично data-дескрипторам).

Дескрипторы нельзя смешивать: у свойства либо есть value и writable, либо get и set.

Дескрипторы используются для управле

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.

descriptorsmetaprogrammingobject-attributesattribute-access__get____set____delete__