Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: объекты, defineproperty, writable

Что такое флаги свойств объекта и как изменить флаги?

Этот вопрос проверяет понимание особенностей свойств объектов в JavaScript, таких как флаги, и как они влияют на поведение этих свойств.

Короткий ответ

Флаги свойств объекта в JavaScript определяют, как свойства могут быть изменены, удалены или перезаписаны. Основные флаги — это writable, enumerable и configurable. Их можно изменить с помощью метода Object.defineProperty(), который позволяет задать или изменить эти характеристики для конкретного свойства объекта.

Длинный ответ

В JavaScript свойства объектов могут иметь несколько флагов, которые управляют их поведением:

  • writable: Если этот флаг установлен в true, значение свойства может быть изменено. Если он установлен в false, попытка изменить значение свойства не приведет к ошибке, но не изменит его.

  • enumerable: Этот флаг определяет, будет ли свойство отображаться при переборе объекта с помощью циклов, таких как for...in или при вызове Object.keys(). Если флаг установлен в false, свойство не будет перечислено.

  • configurable: Если этот флаг установлен в true, свойство может быть удалено и изменены его флаги (например, можно сделать его не записываемым). Если он установлен в false, свойство нельзя удалить, и его флаги не могут быть изменены.

Для изменения флагов свойств используется метод Object.defineProperty():

const obj = {};
Object.defineProperty(obj, 'prop', {
	value: 42,
	writable: false,
	enumerable: true,
	configurable: true, 
});
obj.prop = 33; // Не изменится 
console.log(obj.prop); // 42

В этом примере свойство prop не может быть изменено из-за флага writable: false.

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#объекты

#defineproperty

#writable

Подпишись на React Developer в телеграм