0 Tage Serie
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
javascript
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.