原型:一个属性,属性名叫prototype,只有构造函数有,比如Foo.prototype;
原型链:一个属性,属性名叫__proto__,万物皆有,链状相连,最后归宗到Object.prototype上,Object.prototype的__proto__值为null;
每个对象都会在其内部初始化一个属性,就是__proto__,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去__proto__里找这个属性,这个__proto__又会有自己的__proto__,于是就这样一直找下去,也就是我们平时所说的原型链的概念。
原型和原型链的区别是:原型属性只有构造函数拥有,白话就是 他的爸爸是构造函数;而原型链是所有对象内部多会有,爸爸是所有人