0 Tage Serie
javascript / intermediate
Snippet

Eigenschaften verstecken über das Enumerable-Flag

Durch das Setzen von enumerable auf false mittels Object.defineProperty wird eine Eigenschaft vor Iterationen (wie for...in oder Object.keys) versteckt, bleibt aber direkt zugänglich.

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
Erklärung
1
enumerable: false
Verhindert, dass die Eigenschaft in Schleifen oder bei der Serialisierung erscheint.