问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

深入之继承多种方式与优缺点

发布网友 发布时间:2023-02-27 06:36

我来回答

1个回答

热心网友 时间:2024-11-07 10:58

问题:

优点:
1、避免了引用类型属性被所有实例共享
2、可以在Child中向Parent传参

缺点:
1、方法都在构造函数中定义,,每次创建实例都会创建一次方法
2、获取不到原型上的成员属性

优点:结合原型链和构造函数的优点,最常用的继承方式
缺点:会调用两次父构造函数,每new一次,都会执行一次new 的构造函数,我们打印child1对象,会发现Child.prototype 和 child1 都有一个属性为animal

缺点:
1、原型上的属性如果是引用类型,该属性会在实例之间实现共享
2、只能继承原型对象成员,不能继承父构造函数实例成员

创建一个仅用于封装继承过程的函数,该函数在内部以某种形式来做增强对象,最后返回对象。

缺点:跟借用构造函数一样,每次创建对象都会创建一次方法

组合继承最大的缺点是会调用两次父构造函数,如果不使用Child.prototype = new Parent(),而是间接的让Child.prototype访问到Parent.prototype,并且避免实例对象child和构造函数原型Child.prototype拥有重复的属性
看看如何实现:

最后封装一个这个继承方法:

完整实例:

这种方式的高效率体现它只调用了一次Parent 构造函数,并且避免了在Parent.prototype上面创建不必要、多余的属性,所以寄生组合继承是引用类型最理想的继承范式。

转自:https://github.com/mqyqingfeng/Blog/issues/16

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招投标技术负责人是什么证 欧美的经典的线稿漫画 推荐几款欧美漫画,跪求!!! 十大DC漫画推荐 DC漫画必看经典盘点 dc好看的漫画有哪些 十大欧美漫画推荐 欧洲经典漫画盘点 欧洲好看的漫画有哪些 欧美有哪些经典的漫画作品? 十大美国漫画推荐 美国漫画经典作品 美国著名的漫画有哪些 音悦台mini客户端为什么不能记住账号自动登录呢,,,每次都要重新输~郁... 请问 音悦台 和 百度 怎样解绑手机? 如何注册音悦台账号 梦见从一半红一半绿的蛇旁边过是什么意思 竹荪的作用与功效有哪些竹荪简介 什么是进项税?为什么采购时要记在借方,退货时要记在贷方?采购时这个进效税不是减少了?但还要支付? 赤松茸的种植需要喷管子吗 炖菜制作有哪几种方法炖菜制作的2种方法分享 黄瓜拌金针菇的做法,黄瓜拌金针菇怎么做好吃 销项税为什么记贷方 银耳罗汉果煲鸡汤——增强体质减肥美容 罗汉果雪梨银耳羹 绿色征途起名,我是男的啊!!!要像黑暗战警,黑暗飞虎差不多的啊!太幼稚... 绿色征途名字特殊符号有哪些 名字特殊符号一览 来几个玩腾迅版 绿色征途 的朋友 本人 凤凰一区楚 顺便想几个个性的... 帮忙起个好点的绿色征途人物名字 起个绿色征途家族名 挖空什么什么成语 申请在哪申请 梅豆炒香干的家常做法大全怎么做好吃视频 洋葱跟毛豆一起吃了会过敏吗 梅豆能炖土豆放洋葱吗 茯苓粉面膜的功效 茯苓粉面膜的功效有哪些 两用复合弓容易还是弹弓容易 会打弹弓能打好复合弓吗 梦见两条小蛇,一条绿色,一条红色,很乖的样子。不知道是什么意思,请高人指点? 梦到猫狗缠着本人赶不走 梦到黑猫缠着本人赶不走 黑牛肝菌的功效与作用 黑牛肝菌的食用方式和注意事项 高粱和红萝卜猪肉可一起煮吗 梦见2条小蛇一个红色的一个绿色的 梦见两条蛇一黑一绿 发展中国家货币金融发展的特征 印尼虎鱼怎么养(印尼虎鱼好养吗) 奥特朗即热式电热水器刚安装好,通电后指示灯不亮也不加热,怎么回事? 奥特朗热水器灯亮不加热 小儿胃宝片一般吃几天 气体摩尔体积定义及应用 乐嘉谈孩子不上进怎么办 口袋妖怪:吃什么果能快速增加美丽度? 医保显示该缴费年度不存在有效险种 sc02不存在有效险种是什么意思 城乡居民养老保险显示缴费年度无有效险种