JS的继承

1.原型继承
核心:将父类的实例作为子类的原型(并不是把父类中的属性和方法克隆一份一模一样的给子类,而是让子类父类之间增加了原型链接)
特点:父类中私有的和公有的都继承到了子类原型上(子类公有的)
缺点:如果某一个构造函数实例对象修改了原型对象上的属性值和方法,则也会影响其他实例对象

2.借用构造继承,call继承 【不能继承原型链的方法】
核心:使用父类的构造函数来增强子类实例
特点:把父类私有的属性和方法,克隆一份一样的给子类私有的属性,Father执行的时候,把Father的中的this换成Son的实例,由于并不是new Father,所以Father.prototype上的属性无关
缺点:但没有原型,则复用无从谈起

3.混合模式继承: 原型继承+call继承
核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用
特点:把父类私有的和公有的都变成了子类共有的,但是调用了【两次父类构造函数】,生成了两份实例
原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承

posted @   一土  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示