原型:每一个javascript对象(除null外)创建的时候,都有一个__proto__属性指向与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型中“继承”属性。让我们用一张图表示构造函数和实例及原型之间的关系:
原型链:每个构造函数都有原型对象,每个构造函数实例都包含一个指向原型对象的内部指针(proto),如果我们让第一个构造函数的原型对象等于第二个构造函数的实例,结果第一个构造函数的原型对象将包含一个指向第二个原型对象的指针,再然第三个原型对象等于第一个构造函数的实例,这样第三个原型对象也将包含指向第一个原型对象的指针,以此类推,就够成了实例于原型的链条,这就是原型链的基本概念。