JavaScript Object.getPrototypeOf()


The Object.getPrototypeOf() method returns the prototype of the specified object.

Example

const obj = {id: 711};

// find the the prototype of obj console.log(Object.getPrototypeOf(obj));
// Output: {}

getPrototypeOf() syntax

The syntax of the getPrototypeOf() method is:

Object.getPrototypeOf(obj)

Here, getPrototypeOf() is a static method. Hence, we need to access the method using the class name, Object.


getPrototypeOf() Parameters

The getPrototypeOf() method takes in:

  • obj - the object whose prototype is to be returned.

getPrototypeOf() Return Value

The getPrototypeOf() method returns:

  • the prototype of the given object.
  • null if there are no inherited properties.

Note: The getPrototypeOf() method throws a TypeError exception if the obj parameter isn't an object in ES5. However, since ES2015, the parameter will be coerced to an Object and won't throw any exception.


Example 1: Javascript Object.getPrototypeOf()

// create an object named person
let person = {
    name: "Vincent",
    age: 56,
}

// get the prototype of person object console.log(Object.getPrototypeOf(person))
// Output: {}

In this example, we have created a custom object named person. Then, we used the getPrototypeOf() method to print its prototype.

As can be seen from the output, the prototype of the person is an empty object {}.

Note: By default, objects inherit from Object.prototype. And the prototype of Object.prototype is an empty object {}, which is also the ultimate prototype for all objects in JavaScript.


Example 2: getPrototypeOf() With setPrototypeOf()

// create an empty object
let obj = {};

// create an object named person
let person = {
    name: "Vincent",
    age: 56,
}

// set person as the prototype of obj
Object.setPrototypeOf(obj, person);

// print the prototype of obj console.log(Object.getPrototypeOf(obj));
// Output: { name: 'Vincent', age: 56 } // check if the prototype of obj // is equal to the person object console.log(Object.getPrototypeOf(obj) == person) // Output: true

In the above example, we first created an empty object obj and a non-empty object person.

We then used the setPrototypeOf() method to set the prototype of the empty object to that of the person object.

When we use the getPrototypeOf() method to print the prototype of obj, we get the person object as an output.

Thus, the prototype of obj is the person object.

This is confirmed when we check the prototype of obj against the person object using a Boolean expression, which returns true.

// Boolean expression returns true
Object.getPrototypeOf(obj) == person

Example 3: getPrototypeOf() to Find Prototype of String

let str = "JavaScript"

// find the prototype of string console.log(Object.getPrototypeOf(str));
// Output: [String: ' ']

In the above example, we called Object.getPrototypeOf() to get the prototype of the string str.

The output indicates that the prototype of str is the String constructor function.


Example 4: getPrototypeOf() to Find Prototype of Function

// define a function that greets
function greet() {
    console.log("Hello!")
};

// get the prototype of the above function console.log(Object.getPrototypeOf(greet));
// Output: [Function]

In the above example, we have created a function greet() which prints "Hello!" when called.

We get [Function] as an output when using the getPrototypeOf() method to find the prototype of greet() function.

This output indicates that the prototype of greet() is the [Function] constructor function.


Recommended Reading:

Did you find this article helpful?