In javascript "contructor --> prototype" chain is never ending

Viewed 58

While debugging the JavaScript prototype chain I came across that when we define a Constructor function, the constructor-->prototype chain is never-ending, it keeps on expanding. I have attached a screenshot and a sample code also for reference.

function Person(first, last, age, gender, interests) {
this.name = {
'first': first,
'last' : last
 };
 this.age = age;
this.gender = gender;
} 

const person1 = new Person("foo", "bar", 24, "Male")

My question is, does JavaScript access it by reference/walking up the chain or is JavaScript actually storing it in memory

1 Answers

The chain is not ever-expanding, it contains a circular reference.

As explained on MDN:

Every constructor function has a prototype property whose value is an object containing a constructor property. This constructor property points to the original constructor function.

The following example demonstrates this:

function X() {}

const x = new X();

// test for strict equality
console.log(x.constructor === x.constructor.prototype.constructor); // true

Related