js 用几种方式实现继承(构造函数继承、原型链继承、组合方式继承)
发布日期:2021-06-29 14:32:15 浏览次数:2 分类:技术文章

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

借助构造函数实现继承

    
类与继承

结果

存在问题

上述方式,是通过改变 a 构造函数运行时 this 指向,指向 b,但是 a 原型链上的东西没有继承。

例如:

    
类与继承

因此,通过构造函数来实现的继承,只能继承父类构造函数的属性,如果原型 prototype上面还有方法甚至原型链上的方法,不会继承。

借助原型链实现继承

    
类与继承

结果

存在的问题

首先读者请看如下代码:

    
类与继承

从以上结果来看,当我们修改某一个对象时,该函数所产出的所有新实例都会发生改变,这就造成了 数据污染 问题,肯定不是我们想要的。(因为它们引用的是同一个父类实例对象)

组合方式实现继承1

    
类与继承

结果

存在的问题

如上图结果图所示,拿得是父类的原型对象,依旧没有自己的 constructor。(和父类的原型对象是同一个对象,导致 constructor也指向父类)

组合方式实现继承2

    
类与继承

结果

转载地址:https://chocolate.blog.csdn.net/article/details/106153838 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:女朋友要我教她CSS,我就写了这一篇长文,感动哭了?
下一篇:LeetCode 76. 最小覆盖子串 【滑动窗口】

发表评论

最新留言

很好
[***.229.124.182]2024年04月13日 08时57分22秒