In reality, the only true difference between prototype and __proto__ is that the former is a property of a class constructor, while the latter is a property of a class instance. In other words, while iPhone.prototype provides a blueprint for building an iPhone, newPhone.__prot…
__proto__ is an object in every class instance that points to the prototype it was created from. Here, newPhone.__proto__ is a reference to iPhone.prototype, and thus holds the exact same contents as well. By having a __proto__ property identical to iPhone.prototype, newPhone is essentially saying, “Loo…