js继承

首先,说说一般人都在使用的组合继承优化后的方法:


function Parent(){

    this.name="父级";

    this.play=[1,2,3,6];

}

function Child(){

    Parent.call(this);

    this.type="继承";

}

Child.prototype=Parent.prototype;

let result=new Child();

let cosn=new Parent();

console.log(result.name);//父级

console.log(result.constructor===cosn.constructor);//true

可以发现,两者原型还是同一个,不是完全的继承。所以最终解决方法:


function Parent(){

    this.name="父级";

    this.play=[1,2,3,6];

}

function Child(){

    Parent.call(this);

    this.type="继承"; 

}

Child.prototype=Object.create(Parent.prototype);

Child.prototype.constructor=Child;

let result=new Child();

let cosn=new Parent();

console.log(result.name);//父级

console.log(result.constructor===cosn.constructor);//false

可以发现二者原型不再相同,实现完全继承。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 js的继承有6种方式,大致总结一下它们各自的优缺点,以及它们之间的关系。 1.原型链 js的继承机制不同...
    空_城__阅读 802评论 0 11
  • 说实在话,以前我只需要知道“寄生组合继承”是最好的,有个祖传代码模版用就行。最近因为一些事情,几个星期以来一直心心...
    grain先森阅读 330评论 0 2
  • 继承的概念:子类可以使用父类共享的属性和方法,避免重复代码提高代码复用性。 原型链:子类可以共享父类的实例对象和实...
    浅秋_6672阅读 420评论 0 0
  • 一、原型链 学过java的同学应该都知道,继承是java的重要特点之一,许多面向对象的语言都支持两种继承方式:接口...
    grain先森阅读 1,441评论 0 39
  • 1 原型链继承 把子类的prototype指向父级的实例,也就是原型链继承 此继承方法优 简单明了,父级新增的属性...
    纵横无涯阅读 498评论 0 1