1. 原型
当定义一个函数时,就会有一个prototype(原型)属性,属性值是一个普通的对象。被实例(new)后产生的对象就会有一个__proto__(隐式原型)属性,这个属性指向它的构造函数的prototype。
2. 原型链
一个对象有原型对象,它的原型对象也有自己的原型对象。当访问一个对象的某个属性时,会先在对象本身的属性上找,若没找到,再去它的__proto__(隐式原型)上查找,就是它的构造函数的prototype,若还没找到,再依次向上找,直到找到Object对象,Object对象的原型对象是null,再往上就没了。像这样链式一样的结构成为原型链。