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
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.