原型链:构造函数、实例、原型对象三者之间的关系

原型链:原型链:构造函数、实例、原型对象三者之间的关系

构造函数、实例、原型对象三者密不可分,他们之间到底是怎样的关系呢

构造函数通过prototype属性指向原型对象prototype,原型对象prototype通过prototype.constructor指向构造函数。
构造函数可以创建出其实例对象(通过new方法)。
实例对象通过__proto__属性指向原型对象prototype。由于原型对象protoytpe指向构造函数,所以实例对象也可通过__proto__.constructor指向构造函数。
原型对象也是对象,所以也有__proto__属性,其__proto__属性指向Object.prototype原型对象。
同理,Object构造函数通过Object.prototype指向 Object原型对象prototype,Object原型对象prototype通过Object原型对象.constuctor指向Object构造函数。
Object原型对象prototype.__proto__指向的是null。

对构造函数的对象实例,先找是否创建了对象实例,如果没有再沿着原型链向上找。