博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js实现继承方式
阅读量:7024 次
发布时间:2019-06-28

本文共 704 字,大约阅读时间需要 2 分钟。

  hot3.png

1、原型链继承(子类原型属性创建父类实例) 优点:非常纯粹的继承关系,实例是子类的实例也是父类的实例;父类新增原型方法或者原型属性,子类都可以访问;简单易于实现; 缺点:无法为子类增加属性和方法,必须再new Animal 执行后才可以;无法实现多继承;创建子类实例时,无法向父类构造函数传参; 来自原型队形的引用属性是所有实例共享

2、构造继承(call 直接继承) 优点 可以实现创建子类的时候,向父类传递参数;可以实现多继承。 缺点 实例并不是父类的实例,只是子类实例;只能继承父类的方法,不能继承父类的原有属性/方法;无法实现函数复用,每个子类都有父类实例函数的副本,影响性能 3、实例继承(子类构造函数中 直接创建父类) 有点:不管new子类还是()。返回对象具有相同效果 缺点:实例是父类实例,不是子类实例;不支持多继承

4、拷贝继承(子类构造函数中 循环处理父类属性) 优点:支持多继承 缺点:效率较低,内存占用高;无法获取父类不可枚举的方法

5 组合继承 通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用 优点:既可以继承父类的实例属性和方法也可以继承原型属性和方法 弥补了构造继承 既是子类实例也是父类实例; 不存在引用属性共享问题; 可传参; 函数可复用 缺点:调用了两次父类构造函数,生成了两份实例 、

6 寄生组合继承 核心 通过寄生方式,砍掉父类的实例属性,这样再调用两次父类构造的时候,就不会再初始化两次实例方法/属性,避免了组合继承的缺点

转载于:https://my.oschina.net/kxhome/blog/1920201

你可能感兴趣的文章
数据库读写分离的初步理解
查看>>
[转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
查看>>
Codeforces Beta Round #9 (Div. 2 Only) A. Die Roll 水题
查看>>
代码的组织机制
查看>>
html基础之 input:type
查看>>
json-lib简单处理json和对json的简单介绍
查看>>
jquery checkbox选中、改变状态、change和click事件
查看>>
java joor 实现反射简单调用
查看>>
membership与成员资格
查看>>
Guava 8-区间
查看>>
自定义Spark Partitioner提升es-hadoop Bulk效率
查看>>
总结一些机器视觉库
查看>>
window 后台执行 redis(隐藏窗口)
查看>>
在CentOS Linux下部署Activemq 5
查看>>
并发读写缓存实现机制:高并发下数据写入与过期
查看>>
BeanUtils.copyProperties()方法和PropertyUtils.copyProperties()的区别
查看>>
Atitit 发帖机系列(7) 词法分析的方法attilax大总结)
查看>>
NK3C开发要点
查看>>
scrapy 项目实战(一)----爬取雅昌艺术网数据
查看>>
kettle的job中运行每行
查看>>