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:
HTML
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.