On gists
Proxy - nested
JavaScript
NestedProxy.js
Raw
#
const user = {
a: 'A',
b: {
c: "C",
d: "D"
},
x: {
y: {
z: {
first: "first nested",
second: "second nested"
}
}
}
}
const createNestedProxy = (obj) => {
return new Proxy(obj, {
get(target, prop) {
const props = prop.split('.');
let value = target;
for (const p of props) {
value = value[p];
if (value === undefined) return undefined;
}
return value;
}
});
};
const nestedUser = createNestedProxy(user);
console.log(nestedUser["b.c"]); // Vypíše: "C"
console.log(nestedUser["x.y.z.first"]); // Vypíše: "first nested"