Как сделать свойство объекта неперечисляемым?
Уровень: Senior
Ответ
По умолчанию свойства, добавленные обычным способом, являются перечисляемыми (enumerable) – они появляются при переборе объекта в цикле for...in или Object.keys. Чтобы задать свойство как неперечисляемое, нужно определить его через `Object.defineProperty`. Например: `Object.defineProperty(obj, "secret", { value: 42, enumerable: false });`. В этом случае свойство secret не будет выводиться при переборе свойств. Кроме enumerable, defineProperty позволяет настроить флаги writability и configurability. Но конкретно для неперечисляемости достаточно установить enumerable: false.