Proxy test
by Emily Humphrey
JavaScript
const handler = {
get(target, prop, receiver) {
if (prop === 'items') {
// Proxy the items array
return new Proxy(target[prop], {
get(arrTarget, arrProp, arrReceiver) {
return Reflect.get(arrTarget, arrProp, arrReceiver);
},
set(arrTarget, arrProp, value, arrReceiver) {
console.log(`Setting value ${value} at index ${arrProp}`);
return Reflect.set(arrTarget, arrProp, value, arrReceiver);
}
});
}
return Reflect.get(target, prop, receiver);
}
};
const proxy = new Proxy({ items: [] }, handler);
// Now, operations on proxy.items are intercepted by the proxy.
proxy.items.push({ name: "test" });
proxy.items.push({ name: "test 1" });
proxy.items.push({ name: "test 2" });
proxy.items.push({ name: "test 3" });
console.log(proxy.items)
console.log(proxy.items[0])