JavaScript proxy() constructor is used to return the proxy constructor function for the object(e.g. property lookup, assignment, enumeration, function invocation, etc).
Syntax:
let p = new Proxy(target, handler);
Parameter: The proxy object accept two parameters as mentioned above and described below:
- target: A target object (can be any sort of object including a function, class, or even another proxy) to wrap with Proxy.
- handler: An object whose properties are functions which define the behavior of the proxy when an operation is performed on it.
Example:
const Person = {
Name: 'John Nash',
Age: 25
};
const handler = {
// target represents the Person while prop represents
// proxy property.
get: function (target, prop) {
if (prop === 'FirstName') {
return target.Name.split(' ')[0];
}
if (prop === 'LastName') {
return target.Name.split(' ').pop();
}
else {
return Reflect.get(target, prop);
}
}
};
const proxy1 = new Proxy(Person, handler);
console.log(proxy1);
// Though there is no Property as FirstName and LastName,
// still we get them as if they were property not function.
console.log(proxy1.FirstName);
console.log(proxy1.LastName);
Output:
[object Object] John Nash
Note: The above code can be run directly in terminal provided NodeJs is installed, else run it in a HTML file by pasting the above in script tag and check the output in console of any web browser.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
