Skip to content
Related Articles
Open in App
Not now

Related Articles

JavaScript handler.set() Method

Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 27 Dec, 2022
Improve Article
Save Article

The 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.

The 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




<script>
    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);
</script>


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




<script>
    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); 
      
    var x = { foo: 1 };  
    var proxy = new Proxy(x, {  
      set: function(target, name, value, proxy) {    
    target[name] = value+" --> "+ value.toUpperCase();  
      }  
    });  
    proxy.foo = 'geeksforgeeks';  
    console.log(x.foo);
</script>


Output: 

false
"property set: a = 10"
true
10
"geeksforgeeks --> GEEKSFORGEEKS"

We have a complete list of Javascript Functions, to check those go through the Javascript Functions Complete Reference article.

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

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!