原型链的特点

1、读取对象的某个属性时,JS引擎先寻找对象本身的属性,如果找不到,就找到它的原型去找,如果还找不到,就到原型的原型去找。如果直到顶层的Object.prototype还是找不到就返回undefined。
2、如果对象本身和它的原型都定义了一个同名属性,那么优先读取对象本身的属性,就叫做“覆盖”。
3、一级级向上在原型链找某个属性,对性能是有影响的。

构造函数、原型、实例三者关系:
原型链的特点