今天学习class相关的一些使用方法,着重在于class extends

class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多。

上面的代码定义了一个 Test 类,该类通过 extends 关键字,继承了 Point 类的所有属性和方法。但是由于没有部署任何代码,所以这两个类完全一样,等于复制了一个Point类。

super 方法

代码中,constructor 方法和 toString 方法之中都出现了 super 关键字,它在这里表示父类的构造函数,用来新建父类的this对象。

子类必须在 constructor 方法中调用 super 方法,否则新建实例时会报错。这是因为子类没有自己的 this 对象,而是继承父类的 this 对象,然后对其进行加工。如果不调用 super 方法,子类就得不到this 对象。说白了,super 方法就是子类继承父类 this 对象的一个方法。

上面是生成子类实例的代码,实例对象 cd 同时事 Test 和 Point 两个类的实例,这与ES5的行为完全一致。

类的 prototype 属性 和 __proto__ 属性 (还挺重要的,涉及原型链)

在es5实现上,每一个对象都有 __proto__ 属性,指向对应的构造函数的 prototype 属性。class 作为构造函数的语法糖,同时有prototype 属性和__proto__ 属性,因此同时存两条继承链。

  1. 子类的 __proto__ 属性,表示构造函数的继承,总是指向父类。

  2. 子类的 prototype 属性的 __proto__ 属性,表示方法的继承,总是指向父类的 prototype 属性。

上面的代码中,子类B的 __proto__ 属性 指向父类A,子类B的 prototype 属性的__proto__属性指向父类A的prototype属性。

总结:今天学习了 class extends 继承的原理,以及一些关于原型链的拓展。

转载于:https://www.cnblogs.com/tim100/p/6102810.html

ES6深入学习记录(一)class方法相关相关推荐

  1. FCC学习记录——使用 sort方法按字母顺序给数组排序

    给数字排序(升序)降序为b-a function ascendingOrder(arr) {return arr.sort(function(a, b) {return a - b;}); } asc ...

  2. 学习记录:二层网络环路相关

    学习记录 上周实习过程中由于对此相关内容不熟悉,造成了事故.由此对相关内容加强学习,特此记录. 目录 学习记录 一.交换机相关 二.网络环路的产生 三.网络环路的影响 四.如何避免网络环路 五.二层环 ...

  3. 主线剧情01-ARM-IMX6ULL基础学习记录

    ARM & i.MX6ULL 基础学习记录 编辑整理 by Staok 本文大部分内容摘自"100ask imx6ull"开发板的配套资料(如<IMX6ULL裸机开发 ...

  4. Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用

    文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...

  5. 生信 反相蛋白质阵列 RPPA的相关学习记录

    反相蛋白质阵列 RPPA的相关学习记录 其基本原理是通过特异性抗体对凝胶电泳处理过的细胞或生物组织样品进行着色.通过分析着色的位置和着色深度获得特定蛋白质在所分析的细胞或组织中表达情况的信息. RPP ...

  6. 获取mysql可行方法_Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法...

    <Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法>要点: 本文介绍了Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法,希望对您有用.如果有 ...

  7. 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处

    新闻上的文本分类:机器学习大乱斗 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处理过程与结果差 ...

  8. Spring学习记录(九)---通过工厂方法配置bean

    1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. 1 package com.guigu.spring.factory; 2 3 public c ...

  9. 今天开始要详细的记录学习sharepoint 的进度和相关的一些资料

    今天开始要详细的记录学习sharepoint 的进度和相关的一些资料 转载于:https://www.cnblogs.com/chenfulai/archive/2007/07/26/831952.h ...

最新文章

  1. iMeta | 南科大宋毅组综述逆境胁迫下植物向微生物组求救的遗传基础(附招聘)
  2. Asp.net MVC防止图片盗链的实现方法,通过自定义RouteHandler来操作
  3. Hibernate学习笔记--第一个Hibernate框架程序
  4. notepad++ tcl_TCL科技前三季度净利20亿元,投资并购超200亿元
  5. iptables(上)
  6. 配置HTTPS以与Servlet一起使用
  7. webapi自宿主设置本地端口使用https协议
  8. 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。“Room[][] roo
  9. 让目标检测和实例分割互相帮助,地平线实习生论文被AAAI 2020收录
  10. 来学习一下概率论基本知识,它能让防止你的模型过拟合
  11. VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 public: void __thiscall
  12. Python 的List排序
  13. Pattern 模式器: Matcher 匹配器
  14. Winform程序多种语言切换
  15. 网络计算模式复习大纲
  16. SpringCloud之实现下载Excel模板文件
  17. 如何使用PDF编辑器中文版删除PDF页码
  18. php模拟微信公众账号登陆,[微信公众号]php版模拟登录,向指定用户推送消息目前...
  19. [深度学习论文笔记]UCTransNet:从transformer的通道角度重新思考U-Net中的跳跃连接
  20. python实现排序的lowB三人组:冒泡、插入、选择

热门文章

  1. 用Construct 2制作入门小游戏~
  2. 2022-2028年中国操作系统行业深度调研及投资前景预测报告
  3. 浅显易懂 Makefile 入门 (12)— Makefile 常见的错误信息
  4. 工作如果没有方法,光靠苦力是不行的
  5. 【Sql Server】DateBase-结构化查询基础
  6. Plotly_绘图画图作图交互
  7. GPT3 api接口调用
  8. Brat序列标注工具小结
  9. 算法精解:DAG有向无环图
  10. h265player开发