个人感觉原型链就是从一个构造函数里查找方法,当该构造函数里没有需要的方法时,在构造函数的原型上查找需要的方法,若构造函数的原型还没有需要的方法,则会继续向构造函数的原型的原型去查找方法,.......就像链子一样,一级一级向上查找,直到完全找不到为止。
function A(){
this.a=function(){}
}
//创建一个构造函数并在里面写一个a方法
var b = new A()
//实例化构造函数
情况1:b使用构造函数A的方法a
b.a()
//由于构造函数A的里面直接就有a方法,所以就直接可以输出
情况2:b使用构造函数A的方法b
A.prototype.b=function(){}
//由于A没有方法b,所以需要在A的原型对象上添加该方法。
b.b()
//添加了之后,实例对象b就可以通过__proto__来查找A里的方法。