原型
1.prototype
每个函数对象下都有一个prototype属性,这个属性指向函数的原型对象。
2.proto
js 的每个对象(除null外)中都会有一个__proto__属性,这个属性会指向该对象的原型。
3.constructor
每个原型中都有一个constructor属性,指向它关联的构造函数。
原型链
当查找一个属性或方法时,如果在当前对象中找不到,会继续在当前对象的原型对象中查找;如果原型对象中依然没有找到,会继续在原型对象的原型中查找(原型也是对象,也有它自己的原型);直到找到为止,或者查找到最顶层的原型对象中也没有找到,就结束查找,返回 undefined。这个查找过程是一个链式的查找
当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有__proto__属性值为null。