拷贝继承(call+拷贝继承)

38 篇文章 0 订阅
3 篇文章 0 订阅

属性和方法分开继承:
1、属性的继承:调用父类的构造函数.call。
2、方法的继承:for in,拷贝继承(jquery也是采用拷贝继承extend);

function Person(name,sex){      //父类
    this.name = name;
    this.sex = sex;
}

Person.prototype.showName = function(){
    alert(this.name);
}

var p1 = new Person('小强','男');

function Star(name,sex,job){
    Person.call(this,name,sex);
    this.job = job;
}

//Start.prototype = Person.prototype;//问题所在:出现对象引用,换成下面一个函数调用。给子类增加的原型方法会增加到父类上。

extend(Start,Person);               //完美

Start.prototype.showJob = function(){
};

var p2 = new Strat('小明明','男','学生');

p2.showName();

function extend(obj1,obj2){                 //完美
    for(var attr in obj2){                  //完美
        obj1[attr] = obj2[attr];            //完美
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值