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