每创建一个函数的时候,都会自带一个显示原型protytype属性,这个属性相当于一个指针,指向函数的原型对象。这个对象就相当于一个公共区域,存放所有实例共享的属性和方法,所有同一个类的实例对象都可以访问到该原型对象。但是实例对象不具有显示原型,他只有一个内部的隐式原型_proto_属性, 任何实例对象都有__proto__,指向它所对应的构造函数的原型对象。
原型链又可以称之为隐式原型链。当访问一个对象的某个属性时,会先在这个对象本身的属性上找,如果没有找到,会沿着它的隐式原型__proto__属性指向它所对应的构造函数的原型对象中查找,如果还没找到,就会继续沿着__proto__继续查找,直到最后一层,找不到即为undefined。这样一层一层往上找,彷佛是一条链子串起来,所以叫做原型链。