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