From this answer to __proto__ VS. prototype in JavaScript it states that:
- Why would we need a reference object to the property
[[prototype]](of all objects)?
- Because JavaScript doesn’t want to allow getting / setting the
[[prototype]]directly, so it allows it through a middle layer which is__proto__. So you can think of__proto__as a getter/setter of the[[prototype]]property.
The part I don’t follow is if __proto__ is ‘just a getter/setter’ for [[prototype]], then what is the difference between then two? Why would we ever need two items here instead of just one (either __proto__ or [[prototype]])? Is one similar to a pointer, or one compiled code, or why could they not be considered the same then?




