What's the difference between __proto__ and prototype?
Quick answer
`prototype` is a property on constructor functions; `__proto__` is the actual prototype link on every instance.
In detail
`Fn.prototype` is the object that becomes the prototype of objects created with `new Fn()`. `obj.__proto__` (or `Object.getPrototypeOf(obj)`) is the live link from an instance to its prototype. So `new Fn().__proto__ === Fn.prototype`.
function Dog() {}
const d = new Dog();
d.__proto__ === Dog.prototype; // true
Object.getPrototypeOf(d) === Dog.prototype; // trueWhy interviewers ask this: Tests precise understanding of the prototype wiring.
This is 1 of 118+ questions in the JavaScript Interview Kit
Get every question with detailed answers, follow-ups and real code — plus coding challenges and a last-minute revision sheet. One-time payment, instant access.
⚡ Get the JavaScript Interview Kit → ₹299