0 day streak
javascript / intermediate
Snippet

Hiding Properties via Enumerable Flag

By setting enumerable to false using Object.defineProperty, a property becomes 'hidden' from iteration (like for...in or Object.keys) while remaining accessible directly.

snippet.js
javascript
1
2
3
4
5
6
7
8
const user = { username: 'alice' };
Object.defineProperty(user, 'id', {
value: 101,
enumerable: false
});
console.log(Object.keys(user)); // ['username']
console.log(user.id); // 101
Breakdown
1
enumerable: false
Prevents the property from appearing in loops or serialization.