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

shadowtime2000

If you are looking at this you probably wonder who I am; teenage open source maintainer

shadowtime2000's DEV profile image