How the constructor function try to access the Object.prototype and how the other objects try to access it?

Tell us what’s happening:
I’m used to programming in Java so I find the prototype concept painful to grasp

he hasOwnProperty method is defined in Object.prototype , which can be accessed by Bird.prototype, which can then be accessed by duck. This is an example of the prototype chain.

In this prototype chain, Bird is the supertype for duck , while duck is the subtype . Object is a supertype for both Bird and duck.

function Bird(name) {
  this.name = name;
}

typeof Bird.prototype; // => object
let duck= new Bird("ducky");

Bird.prototype.isPrototypeOf(duck);  // => true

the question is:
how the constructor function(Birds) can access the Object.prototype on the same way that objects access(duck)!

Object.prototype.isPrototypeOf(Bird.prototype);//true
Brid.prototype.isPrototypeOf(duck.prototype);//true

Your code so far

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36.

Link to the challenge:
I can’t include links yet sorry!
//https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-prototype-chain/