ipt/Reference/Global_Objects/Function/@@hasInstance)
    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

  * Value 
  * Description 
  * Examples 
  * Specifications 
  * See also 

#  Function: prototype

The **` prototype ` ** data property of a [ ` Function ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function) instance is used
when the function is used as a constructor with the [ ` new ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/new) operator. It will become the
new object's prototype.

**Note:** Not all [ ` Function ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function) objects have the `
prototype ` property â see  description  .

##  Value

An object.

Property attributes of ` Function: prototype `  
---  
Writable  |  yes   
Enumerable  |  no   
Configurable  |  no   
  
**Note:** [ Classes ](/en-US/docs/Web/JavaScript/Reference/Classes) are a type
of function, so most of the description here applies to the ` prototype `
property of classes too. The only salient difference is that the ` prototype `
property of a class is not writable.

##  Description

When a function is called with [ ` new ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/new) , the constructor's `
prototype ` property will become the resulting object's prototype.

js

    
    
    function Ctor() {}
    const inst = new Ctor();
    console.log(Object.getPrototypeOf(inst) === Ctor.prototype); // true
    

You can read [ Inheritance and the prototype chain ](/en-
US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain#constructors) for
more information about the interactions between a constructor function's `
prototype ` property and the resulting object's prototype.

A function having a ` prototype ` property is not sufficient for it to be
eligible as a constructor. [ Generator functions ](/en-
US/docs/Web/JavaScript/Reference/Statements/function*) have a ` prototype `
property, but ca