A handler is an object whose properties are functions that define the behaviour of the proxy when an operation is performed on it. An empty handler will create a proxy that behaves, in almost all respects, exactly like the target. By defining any of a set group of functions on the handler object, you can customize specific aspects of the proxy’s behaviour. For example, by defining get() you can provide a customized version of the target’s property accessor.
Syntax:
new Proxy(target, handler)
proxy constructor(): Used to create a proxy object which takes two parameters.
Parameters:
- target: target object to wrap with Proxy. It can be any sort of object, including a native array, a function, or even another proxy.
- handler: An object whose properties are functions that define the behaviour of the proxy when an operation is performed on it.
List of Handler Methods: This section lists all the handler methods you can define. Handler methods are sometimes called traps, because they trap calls to the underlying target object
Example: In this example, the target has two properties, string and num. We define a handler that returns a different value for num, and lets any other accesses through to the target.
Javascript
<script>
const target = {
string: "GeeksForGeeks" ,
num: 123
};
const handler = {
get: function (target, prop, receiver) {
if (prop === "string" ) {
return "GeeksForGeeks" ;
}
return Reflect.get(...arguments);
}
};
const obj = new Proxy(target, handler);
console.log(obj.string);
console.log(obj.num);
</script>
|
Output:
GeeksForGeeks
123