2. [ ` Function.prototype.apply() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)
    3. [ ` Function.prototype.bind() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
    4. [ ` Function.prototype.call() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)
    5. [ ` Function.prototype.toString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString)
  6. **Inheritance**
  7. **[ ` Object ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) **
  8. 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 
  9. 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

  * Constructor 
  * Instance properties 
  * Instance methods 
  * Examples 
  * Specifications 
  * Browser compatibility 
  * See also 

#  Function

The **` Function ` ** object provides methods for [ functions ](/en-
US/docs/Web/JavaScript/Reference/Functions) . In JavaScript, every function is
actually a ` Function ` object.

##  Constructor

[ ` Function() ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function)

    

Creates a new ` Function ` object. Calling the constructor directly can create
functions dynamically but suffers from security and similar (but far less
significant) performance issues to [ ` eval() ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/eval) . However, unlike `
eval() ` , the ` Function ` constructor creates functions that execute in the
global scope only.

##  Instance properties

These properties are defined on ` Function.prototype ` and shared by all `
Function ` instances.

[ ` Function.prototype.arguments ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments) Deprecated
Non-standard

    

Represents the arguments passed to this function. For [ strict ](/en-
US/docs/Web/JavaScript/Reference/Strict_mode) , arrow, async, and generator
functions, accessing the ` arguments ` property throws a [ ` TypeError `
](/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) . Use the [ `
arguments ` ](/en-US/docs/Web/JavaScript/Reference/Functions/arguments) object
inside function closures instead.

[ ` Function.prototype.caller ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller) Deprecated
Non-standard

    

Represents the function that invoked this function. For [ strict ](/en-
US/docs/Web/JavaScript/Reference/Strict_mode) , arrow, async, and generator
functions, accessing the ` caller ` property throws a [ ` TypeError ` ](/en-
US/docs/W