记录几句话,方便大家理解:每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以有才特定类型的所有实例共享的属性和方法。使用原型对象的好处就是可以让所有的对象实例共享它所包含的属性和方法;
function Persion(){}
Persion.prototype.name="Nicho";
Persion.prototype.age=45;
Persion.prototype.job="Software Engineer";
Persion.prototy.sayName=function(){
alert(this.name);
}
var persion1=new Persion();
persion1.sayName();//'Nicho'
var persion2=new Persion();
persion2.sayName();//'Nicho'
alert(persion1.sayName==persion2.sayName);
下图,望理解
每个实例对象有一个指针,指向构造函数的原型对象,这个指针是[[prototype]],在每个对象上支持一个属性就是__proto__;