对象冒充 组合继承
对象冒充存在的问题,不能使用原型,所以就不能不能实现数据共享
<script>
function Test(age) {
this.family=["妈妈","爸爸"];
this.age=age;
this.fun=function () {
return this.age+this.family;
}
}
function Until(age) {
Test.call(this,age)
}
var u1=new Until(23);
console.log(u1.fun());
var u2=new Until(24);
console.log(u2.fun());
console.log(u1.fun==u2.fun);//false
//对象冒充存在的问题
//不能使用原型,所有就不能不能实现数据共享
function Test(age) {
this.family=["妈妈","爸爸"];
this.age=age;
}
Test.prototype.fun=function () {
return this.age+this.family;
};
function Until(age) {
Test.call(this,age)
}
var u1=new Until(23);
console.log(u1.fun());
var u2=new Until(24);
console.log(u2.fun());
console.log(u1.fun==u2.fun);//false
//组合继承(原型加对象冒充)
function Test(age) {
this.family=["妈妈","爸爸"];
this.age=age;
}
Test.prototype.fun=function () {
return this.age+this.family;
};
function Until(age) {
Test.call(this,age);//对象冒充
}
Until.prototype=new Test();//原型链
var u1=new Until(23);
u1.family.push("姐姐");
console.log(u1.fun());
var u2=new Until(24);
console.log(u2.fun());
console.log(u1.fun==u2.fun);//true
</script>
发表评论: