Using JavaScript Proxies
shadowtime2000

shadowtime2000 @shadowtime2000

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

Joined:
Jul 12, 2020

Using JavaScript Proxies

Publish Date: Sep 30 '20
6 0

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

You can read more about Proxies on the MDN.

Comments 0 total

    Add comment