Reflect.ownKeys() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys)
    11. [ ` Reflect.preventExtensions() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions)
    12. [ ` Reflect.set() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set)
    13. [ ` Reflect.setPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf)
  4. Inheritance 
  5. [ ` Object ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
  6. Properties 
    1. [ ` Object.prototype.constructor ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor)
    2. [ ` Object.prototype.__proto__ ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto) Deprecated 
  7. Methods 
    1. [ ` Object.prototype.__defineGetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__) Deprecated 
    2. [ ` Object.prototype.__defineSetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__) Deprecated 
    3. [ ` Object.prototype.__lookupGetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__) Deprecated 
    4. [ ` Object.prototype.__lookupSetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__) Deprecated 
    5. [ ` Object.prototype.hasOwnProperty() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
    6. [ ` Object.prototype.isPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf)
    7. [ ` Object.prototype.propertyIsEnumerable() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable)
    8. [ ` Object.prototype.toLocaleString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString)
    9. [ ` Object.prototype.toString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)
    10. [ ` Object.prototype.valueOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)

##  In this article

  * Description 
  * Static properties 
  * Static methods 
  * Examples 
  * Specifications 
  * Browser compatibility 
  * See also 

#  Reflect

The **` Reflect ` ** namespace object contains static methods for invoking
interceptable JavaScript object internal methods. The methods are the same as
those of [ proxy handlers ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy) .

##  Description

Unlike most global objects, ` Reflect ` is not a constructor. You cannot use
it with the [ ` new ` operator ](/en-
US/docs/Web/JavaScript/Reference/Operators/new) or invoke the ` Reflect `
object as a function. All properties and methods of ` Reflect ` are static
(just like the [ ` Math ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Math) object).

The ` Reflect ` object provides a collection of static functions which have
the same names as the [ proxy handler methods ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy) .

The major use case of ` Reflect ` is to provide default forwarding behavior in
` Proxy ` handler traps. A [ trap ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#terminology) is used to
intercept an operation on an object â it provides a custom implementation
for an [ object internal method ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#object_internal_methods)
. The ` Reflect ` API is used to invoke the corresponding internal method. For
example, the code below creates a proxy ` p ` with a [ ` deleteProperty `
](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty)
trap that intercepts the ` [[Delete]] ` internal method. `
Reflect.deleteProperty() ` is used to invoke the default ` [[Delete]] `
behavior on ` targetObject ` directly. You can replace it with [ ` delete `
](/en-US/docs/Web/JavaScript/Reference/Operators/delete) , but using ` Reflect
` saves you fr