前端培训-JS实现继承有几种方法

发布时间:2020年06月19日作者:atguigu浏览次数:792

1.原型链继承

特点:

非纯粹的继承关系,实例是子类的实例,也是父类的实例
父类新增原型方法/原型属性,子类都能访问的到
简单
缺点

要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中
无法实现继承多个
来自原型对象的所有属性被所有实例共享
创建子类实例时,无法向父类构造函数传参

2.构造继承:

特点:

  • 创建子类实例时,可以向父类传递参数
  • 可以实现多继承(call多个父类对象)

缺点:

  • 实例并不是父类的实例,只是子类的实例
  • 只能继承父类的实例属性和方法,不能继承原型属性/方法
  • 无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

3.实例继承

特点:

  • 不限制调用方式,不管是new子类()还是子类(),返回的对象都具有相同的效果

缺点:

  • 实例是父类的实例,不是子类的实例
  • 不支持多继承

4.拷贝继承:

特点:

  • 支持多继承

缺点:

  • 效率极低,内存占用高
  • 无法获取父类不可枚举的方法

5.组合继承:

特点:

  • 弥补了方式2的缺陷,可以继承实例属性/方法,也可以继承原型属性/方法
  • 既是子类的实例,也是父类的实例
  • 不存在引用属性共享问题
  • 函数可复用
  • 可传参

缺点:

  • 调用了俩次构造函数,生成了俩份实例

想要了解跟多关于前端培训课程内容欢迎关注尚硅谷前端培训,尚硅谷除了这些技术文章外还有免费的高质量前端培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)