原型继承和 Class 继承
25-04-07 04:48
628
0
⾸先先来讲下 class ,其实在 JS 中并不存在类, class 只是语法糖,本质还是函数
class Person {} Person instanceof Function; // true
组合继承
function Parent(value) { this.val = value; } Parent.prototype.getValue = function () { console.log(this.val); }; function Child(value) { Parent.call(this, value); } Child.prototype = new Parent(); const child = new Child(1); child.getValue(); // 1 child instanceof Parent; // true
以上继承的⽅式核⼼是在⼦类的构造函数中通过 Parent.call(this) 继承⽗类的属性, 然后改变⼦类的原型为 new Parent() 来继承⽗类的函数。 这种继承⽅式优点在于构造函数可以传参,不会与⽗类引⽤属性共享,可以复⽤⽗类的函 数,但是也存在⼀个缺点就是在继承⽗类函数的时候调⽤了⽗类构造函数,导致⼦类的原 型上多了不需要的⽗类属性,存在内存上的浪费
寄⽣组合继承
这种继承⽅式对组合继承进⾏了优化,组合继承缺点在于继承⽗类函数时调⽤了构造函数,我们只需要优化掉这点就⾏了
function Parent(value) { this.val = value; } Parent.prototype.getValue = function () { console.log(this.val); }; function Child(value) { Parent.call(this, value); } Child.prototype = Object.create(Parent.prototype, { constructor: { value: Child, enumerable: false, writable: true, configurable: true, }, }); const child = new Child(1); child.getValue(); // 1 child instanceof Parent; // true
class继承
class Parent { constructor(value) { this.val = value; } getValue() { console.log(this.val); } } class Child extends Parent { constructor(value) { super(value); this.val = value; } } let child = new Child(1); child.getValue(); // 1 child instanceof Parent; // true
-
Langchain 教程-文档检索
一、核心概念:文档检索器的定位与作用1.流程闭环: 文档加载(Loader)->文档分割(Splitter)→>**文档检索(Retriever)**>大模型交互 ... 947 0 25-05-06 -
php实现QQ电脑网页和移动端网页授权登录
首先登陆QQ互联首页https://connect.qq.com/进行个人/企业认证。大概审核时间在一周左右。认证通过之后创建应用:这里主要用到应用的APP I... 1431 0 21-07-27 -
隐私优化程序,禁止更新软件-Privatezilla
Privatezilla是一款开源免费的 Windows 10 隐私优化程序。运行「Privatezilla」后,点击分析按钮,就会列出相关隐私推荐设置,根据你自... 1069 0 25-05-06 -
Defender Control v2.1 一款用于管理Windows Defender的小工具
Windows Defender是Windows自带的软件,可以帮助保护用户的计算机免受病毒,间谍软件和其他恶意软件(恶意软件)的侵害。但是有用户想要关... 1060 0 25-02-09 -
微商截图大师会员版_轻松编辑图片和视频
微商截图大师app是一款功能强大的图片和视频编辑工具,拥有友好的用户界面,是微商从业者们的营销利器。使用这款应用,用户可以轻松制... 1023 0 25-06-09 -
通向电影圣殿——北京电影学院影片分析课教材
今天、就是现在,抄写得工工整整的一厚摞书稿放在我面前的写字台上了。望着它,我心头不禁涌起许多滋味:是喜悦,是疲倦,是欣慰,是惆怅?说... 1269 0 24-07-10 -
微信红包牛牛可运行+接龙+扫雷+PC蛋源码+含视频安装教程
游戏程序是一款以java语言为基础的游戏程序,可封装成安卓App,界面美观大方,修复了个人中心的部分功能,美化了个人中心头像。游戏升级后... 471 0 21-07-07 -
php5.3使用手册,PHP5.3开发
PHP 5.3从一方面来讲,可以说在2007年计划PHP 6的中的一个PRE版本,增加了很多功能,统一了很多语法,使PHP变得更加强大与简洁。PHP 5.3... 306 0 24-05-24
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~