javascript实现继承主要方式

javascript继承

我理解的javascript的继承关键点是从其他对象上获取方法和属性到本对象上。所以基于本思想结合日常项目经验总结一下四种常用的继承方式:

  • 1:构造继承

    构造继承类似于Java中的继承思想,关键是在子对象的构造函数中,通过this和call方法,继承父对象的方法和属性,则在实例化子对象时,子对象同样具有父对象的属性和方法。

function A(){
   this.show1=function(){
    console.log("我是父类");
    };
};
function B(){
    A.call(this);
    this.show2=function(){
    console.log("我是子类");
    };
};
//这样new出的B类对象,既具有A的方法,也具有B的方法。
  • 2:原型链继承

    我们都知道,对应面向对象语言,存在接口继承和实现继承,但ECMAScript无法实现接口继承,只支持实现继承(原型链)。
    所以利用原型让一个引用类型继承另一对象的属性和方法,即为原型链继承。

function B(){
    this.show2=function(){
    console.log("我是子类");
    };
};
function A(){
   this.show1=function(){
    console.log("我是父类");
    };
};
B.prototype=new A();//即为实现原型链继承
  • 3:组合式继承

    组合式继承可以综合构造函数继承和原型链继承的优势。关键是利用构造函数继承实现属性继承,利用原型链实现方法的继承。这里不具体举例。

  • 4:寄生式继承
    关键:在拷贝原有对象原型基础上扩展新的属性和方法,构造新原型。

function Object(obj1){
  functon ObjectChild(){};
  ObjectChild.prototype=obj1;
  return new  ObjectChild();
};
//以上函数,传入一个对象可以拷贝出子对象返回。在此基础上实现寄生继承。
function createObject(obj1){
  var clone=object(obj1);
   //以下可以在克隆对象继承上添加新属性和方法
   clone.say=function(){};
   //返回扩展后的子对象
   return clone;
  return new  ObjectChild();
};
//这样闯入一个父对象就可以得到继承并扩展后的子对象。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值