javascript / intermediate
Snippet
Metaprogrammierung mit Proxies
Das Proxy-Objekt ermöglicht es, eine Hülle um ein anderes Objekt zu erstellen, die grundlegende Operationen für dieses Objekt abfangen und neu definieren kann, wie z. B. Eigenschaftssuche, Zuweisung und Enumeration.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const user = {firstName: 'Jonas',lastName: 'Weber'};const handler = {get: (target, prop) => {if (prop === 'fullName') {return `${target.firstName} ${target.lastName}`;}return prop in target ? target[prop] : 'Property not found';}};const proxyUser = new Proxy(user, handler);console.log(proxyUser.fullName); // Jonas Weberconsole.log(proxyUser.age); // Property not found
Erklärung
1
const handler = { get: (target, prop) => { ... } };
Definiert eine 'Trap' für das Abrufen von Eigenschaftswerten.
2
const proxyUser = new Proxy(user, handler);
Erstellt den Proxy, indem das ursprüngliche Benutzerobjekt mit der Handler-Logik umhüllt wird.