The Connection Between Functions and Objects
When you create an object via new F(), its [[Prototype]] is set to whatever F.prototype is at that moment.
let animal = { eats: true };
function Rabbit(name) { this.name = name; }
Rabbit.prototype = animal;
let rabbit = new Rabbit('White Rabbit');
console.log(rabbit.eats); // true — inherited from animal
The Default constructor Property
By default, F.prototype has a single property constructor pointing back to F itself. This lets objects know " who created me " :
function Cat(name) { this.name = name; }
let tom = new Cat('Tom');
console.log(tom.constructor === Cat); // true
Important
F.prototype is only used during new F(). Changing it later does NOT affect already-created objects.