.prototype vs proto vs Prototype

What it is: The actual hidden property that stores the inheritance connection.

javascript

let animal = { eats: true };
let rabbit = { jumps: true };
 
rabbit.__proto__ = animal;
// Now rabbit.[[Prototype]] points to animal (internal, can't access directly)

2. __proto__ - The Accessor (getter/setter)

What it is: A way to get/set the [[Prototype]] property.

javascript

let animal = { eats: true };
let rabbit = { jumps: true };
 
// SETTER - sets rabbit.[[Prototype]] = animal
rabbit.__proto__ = animal;
 
// GETTER - reads rabbit.[[Prototype]]
console.log(rabbit.__proto__ === animal); // true