JavaScript handler.defineProperty() Method

The handler.defineProperty function serves the purpose of establishing new properties. Additionally, it enables direct alterations of existing properties on an object. This function acts as a trap for Object.defineProperty. It can be utilized in two specific scenarios.

  • When it is necessary to guarantee cross-browser compatibility for getters and setters.
  • Whenever there is a need to create a custom property accessor.
  • Syntax

    Example
    
    defineProperty: function(target, property, descriptor)
    

    Parameters

Target : The target object.

Property : Retrieved property description.

Descriptor: The characteristic that is being specified or altered.

Return value

This method returns a Boolean

Browser Support

Chrome 49
Edge 12
Firefox 18
Opera 36

Example 1

Example

var target = {}

target.foo = 'bar'

document.writeln(Object.getOwnPropertyDescriptor(target, 'foo'))

Output:

Output

[object Object]

Example 2

Example

var xyz = {};

var proxy = new Proxy(xyz, {

  defineProperty: function(target, name, propertyDescriptor) {

document.writeln('in defineProperty');

return Object.defineProperty(target, name, propertyDescriptor);

  }

});

Object.defineProperty(proxy, 'bar', {} );

Output:

Output

in defineProperty

Example 3

Example

var xyz ={};

var hu = {};

var proxy = new Proxy(xyz, {

   defineProperty: function(target, name, propertyDescriptor) {

    document.writeln('Learn Java Script');



       return Object.defineProperty(target, name, propertyDescriptor);

  }

      });

var pro= new Proxy(hu, {

  defineProperty: function(target, name, propertyDescriptor) {

    document.writeln('Proxt Method ');

       return Object.defineProperty(target, name, propertyDescriptor);

}

      });

   Object.defineProperty(proxy, 'bar', {} );

   Object.defineProperty(pro, 'hug', {} );

Output:

Output

Learn Java Script Proxt Method

Input Required

This code uses input(). Please provide values below: