prototype
每个函数都有一个prototype属性, 称为显示原型
__proto__
- 每个实例对象都会有__proto__属性, 称为隐式原型
- 每个实例对象的隐式原型__proto__属性指向自身构造函数的显示原型prototype
constructor
每个prototype原型都有一个constructor属性, 指向关联的构造函数
原型链
获取对象属性时, 如果对象本身没有这个属性, 那就会去他的原型__proto__上找, 如果还查不到, 就去找原型的原型, 一直找到最顶层(object.prototype)为止。object.proto对象也有__proto__, 属性为null。
- 这里需要注意的是Object是属于原型链的顶层,所有构造函数的的prototype都指向 Object.prototype