创建一个函数都会有一个默认的prototype属性,new新实例之后,实例化对象的prototype上的属性指向了默认的prototype。
重新给函数的prototype赋值后:
1、采用对象字面量的方式:
实例化对象的prototype上的属性仍然指向默认地址
2、直接对prototype的属性值做赋值
实例化对象的prototype上的属性将被修改;
注意:
如果是引用类型的数据,通过实例化对象修改,也会影响原型上的数据
var father1={
name:"lisa"
}
var father2={
name:"jennie"
}
var Son =function(){};
Son.prototype=father1;
var son1=new Son();
alert(son1.name); //lisa
Son.prototype=father2;
alert(son1.name); //lisa
var son2=new Son();
alert(son2.name); //jennie
son2.name="Jack";
alert(father2.name); //jennie