JavaScript handler.set() method in JavaScript is a trap for setting a property value. This method returns a boolean value.
Syntax:
const p = new Proxy(target, { set: function(target, property, value, receiver) { } });
Parameters: This method accepts four parameters as mentioned above and described below:
- target: This parameter holds the target object.
- property: This parameter holds the name or Symbol of the property.
- value: This parameter holds the new value of the property.
- receiver: This parameter holds the object to which the assignment was originally directed.
Return value: This method always returns a boolean value.
Below examples illustrate the handler.set() Method in JavaScript:
Example 1: In this example, we will see the basic use of the handler.set() Method in JavaScript.
javascript
function gfg() { this .users = "Millions" ; } const handler1 = { set(obj, prop, value) { if ((prop === 'users' ) && ((value % 2) !== 0)) { console.log( 'GEEKSFORGEEKS : Computer Science Portal' ); } else { return Reflect.set(...arguments); } } }; const gfg1 = new gfg(); const proxy1 = new Proxy(gfg1, handler1); proxy1.users = 1; console.log(proxy1.users); |
Output:
"GEEKSFORGEEKS : Computer Science Portal" "Millions"
Example 2: In this example, we will see the basic use of the handler.set() Method in JavaScript.
javascript
const p = new Proxy({}, { set: function (target, prop, value, receiver) { target[prop] = value; console.log( 'property set: ' + prop + ' = ' + value); return true ; } }) console.log( 'a' in p); p.a = 10; console.log( 'a' in p); console.log(p.a); let x = { foo: 1 }; let proxy = new Proxy(x, { set: function (target, name, value, proxy) { target[name] = value + " --> " + value.toUpperCase(); } }); proxy.foo = 'neveropen' ; console.log(x.foo); |
Output:
false "property set: a = 10" true 10 "neveropen --> GEEKSFORGEEKS"
Supported Browsers: The browsers supported by handler.set() method are listed below.
- Google Chrome 49 and above
- Edge 12 and above
- Firefox 18 and above
- Opera 36 and above
- Safari 10 and above
We have a complete list of Javascript Proxy/handler methods, to check those go through the Javascript Proxy/handler Reference article.