JavaScript Proxy Object is used to define the custom behavior of fundamental operations (e.g. property lookup, assignment, enumeration, function invocation, etc).
Syntax:
const p = new Proxy(target, { Proxy method: function(target, thisArg, argumentsList) { } });
Example: Below examples illustrate the handler.apply() method in JavaScript:
Javascript
<script> function sum(a, b) { return a + b; } const handler = { apply: function (target, thisArg, argumentsList) { console.log(`Calculate sum: ${argumentsList}`); return target(argumentsList[0], argumentsList[1])*14/3; } }; const proxy1 = new Proxy(sum, handler); console.log(sum(23, 4)); console.log(proxy1(23, 4)); </script> |
Output:
27 "Calculate sum: 23, 4" 126
The complete list of JavaScript Proxy is listed below:
JavaScript Proxy Constructor: In JavaScript, a constructor gets called when an object is created using the new keyword.
Constrcutor |
Description |
Example |
---|---|---|
Proxy | Return the proxy constructor function for the object. |
JavaScript Proxy Properties: There are no properties for proxy objects.
JavaScript Proxy Methods: JavaScript methods are actions that can be performed on objects.
-
Static Method: If the method is called using the proxy class itself then it is called a static method.
Methods |
Description |
Example |
---|---|---|
revocable() | Create a new Proxy object which is similar to the Proxy() constructor |
JavaScript Handler Methods: This method is quite different from other javascript methods, this methods handle and verify user input, user actions, and browser actions. It sets the restriction to the browsers same tings does not required to trigger multiple ties as well.
Methods |
Description |
Example |
---|---|---|
apply() | Trap for a function call. | |
construct() | Trap for the new operation and this method returns an object. | |
defineProperty() | Define the new properties and modify the existing properties directly on an object. | |
deleteProperty() | Trap for the delete operator. | |
get() | Trap for getting a property value. | |
getOwnPropertyDescriptor() | Trap for Object.getOwnPropertyDescriptor() method. | |
getPrototypeOf() | Trap for the internal method. | |
has() | Hide any property that you want. | |
isExtensible() | Trap for Object.isExtensible() method and it returns a boolean value. | |
ownKeys() | Trap for Reflect.ownKeys() method and this method returns an enumerable object. | |
preventExtensions() | Trap for Object.preventExtensions() method and it returns a boolean value. | |
set() | Trap for setting a property value. This method returns a boolean value. | |
setPrototypeOf() | Trap for Object.setPrototypeOf() method and it returns a Boolean value. |