1. 什么是原型链
原型链 : 实例对象(a1)与原型(Aaa.prototype)之间的连接,叫做原型链
举个例子
Aaa.prototype.num = 10;
var a1 = new Aaa();
alert(a1.num);//10
上面的代码可以用下面图表示出来
接着看
function Aaa(){
this.num = 20;
}
Aaa.prototype.num = 10;
var a1 = new Aaa();
alert(a1.num);//20
为什么这次弹出来是20而不是10呢,我们可以简单的记忆一下,将这种的(Aaa.prototype.)看成是class,另外一种(function Aaa)看成是style,因为style的优先级比class高,所以结果是20。具体原理如下图,因为是逐层往下找,先找到20。
原型链的最外层 : Object.prototype
看如下代码
function Aaa(){
//this.num = 20;
}
//Aaa.prototype.num = 10;
Object.prototype.num = 30;
var a1 = new Aaa();
alert(a1.num);//30
原理如下图所示
图略丑,凑活着看,^_^