In this post I will show you how to use a Proxy.
The concept of a proxy is pretty simple. You provide triggers that run when you are getting or setting something in an object.
// private user object
const _user = {
name: "User",
age: 25,
_address: "A place"
}
const traps = {
get(target, prop) {
if (prop[0] === "_") {
return undefined;
}
}
}
const user = new Proxy(_user, traps);
console.log(user.name) // User
console.log(user.age) // 25
console.log(user._address) // undefined
As shown in the example above, Proxies can be used for stopping programs from accessing private variables. They can also be used to stop programs from setting private variables.
// private user object
const _user = {
name: "User",
age: 25,
_address: "A place"
}
const traps = {
get(target, prop) {
if (prop[0] === "_") {
return undefined;
}
},
set(target, prop, value) {
if (prop[0] === "_") {
return;
} else {
target[prop] = value;
}
}
}
const user = new Proxy(_user, traps);
user.name = "Person";
user.age = 26;
user._address = "In the world"; // Doesn't set
You can read more about Proxies on the MDN.
Back | DEV.toshadowtime2000
If you are looking at this you probably wonder who I am; teenage open source maintainer