javascript / intermediate
Snippet
Metaprogrammierung mit Reflect
Die Reflect-API bietet Methoden für abfangbare JavaScript-Operationen. Im Gegensatz zur Object-Klasse geben Reflect-Methoden einen booleschen Wert zurück, um den Erfolg anzuzeigen, und bieten eine konsistentere Art der Eigenschaftsdefinition und -prüfung.
snippet.js
1
2
3
4
5
6
7
const user = { id: 42 };Reflect.defineProperty(user, 'hidden', {value: 'secret',enumerable: false});console.log(Reflect.has(user, 'id'));console.log(Reflect.ownKeys(user));
Erklärung
1
Reflect.defineProperty(user, 'hidden', { ... });
Definiert eine neue Eigenschaft und gibt true zurück, wenn dies erfolgreich war.
2
enumerable: false
Macht die Eigenschaft in Standardschleifen wie for...in unsichtbar.
3
Reflect.has(user, 'id');
Prüft, ob die Eigenschaft am Objekt oder in der Prototypenkette existiert.
4
Reflect.ownKeys(user);
Gibt ein Array aller eigenen Eigenschaftsschlüssel zurück, auch nicht aufzählbare.