源于react里面constructor()和super()的使用
es5里面没有继承的话
//构造函数
function People(name,age){
this.age = age;
this.name = name
}
let p1 = new People('hahhaha', '88')
es6里面通过class实现
复习一个重要知识点——ES5中new到底做了些啥?
当一个构造函数前加上new的时候,背地里来做了四件事:
1.生成一个空的对象并将其作为 this;
2.将空对象的 __proto__
指向构造函数的 prototype
;
3.运行该构造函数;
4.如果构造函数没有 return 或者 return 一个返回 this 值是基本类型,则返回this;如果 return 一个引用类型,则返回这个引用类型。
简单解释,就是在ES5的继承中,先创建子类的实例对象this,然后再将父类的方法添加到this上( Parent.apply(this)
)。而ES6采用的是先创建父类的实例this(故要先调用 super( )
方法),完后再用子类的构造函数修改this。
补充:
1.子类如果没有 constructor
方法,该方法会被默认添加,即任何的子类都有 constructor
方法,无论定义没定义,它就在那里,不离不弃。
2.在子类的构造函数 constructor( )
中,只有调用 super( )
方法之后,才可以使用 this
关键字,否则会报错。
源于react里面constructor()和super()的使用的更多相关文章
- React关于constructor与super(props)之间的相爱相杀
我们先把菜鸟教程的一段代码拿过来分析一下.下面这段代码是用了将生命周期方法添加到类中实现时钟效果. // 将生命周期方法添加到类中 class Clock extends React.Componen ...
- react的constructor和super的具体含义和使用
1.constructor( )-----super( )的基本含义 这是ES6对类的默认方法,通过 new 命令生成对象实例时自动调用该方法.并且,该方法是类中必须有的,如果没有显示定义,则会默认添 ...
- react中constructor和super()以及super(props)的区别。
react中这两个API出镜率超级高,但是一直不太懂这到底是干嘛的,有什么用:今天整理一下,方便自己查看同时方便大家. 1.constructor( )-----super( )的基本含义 const ...
- react中constructor()和super()的具体含义以及如何使用
1.constructor()---super( )的基本含义 constructor()--构造方法 这是ES6对类的默认方法,通过new命令生成对象实例时自动调用该方法.并且,该方法是类中必须有的 ...
- class实现React继承以及constructor的super的问题
看这篇文章之前 建议先看看阮一峰 的Class继承 便于更好的理解 首先要知道一个问题 React的父子组件和组件类的继承有什么关系?答案是:没有关系 父子组件:指的得是组件标签包含关系 父子组件通过 ...
- react组件中的constructor和super小知识
react组件中的constructor和super小知识 1.react中用class申明的类一些小知识 如上图:类Child是通过class关键字申明,并且继承于类React. A.Child的类 ...
- React中类定义组件constructor 和super
刚开始学习React没多久,在老师的教程里看到了类组件的使用示例,但是和资料上有些冲突,而引发了一些疑问: 类组件中到底要不要定义构造函数constructor()? super()里边到底要不要传入 ...
- class 中的 构造方法、static代码块、私有/公有/静态/实例属性、继承 ( extends、constructor、super()、static、super.prop、#prop、get、set )
part 1 /** * << class 中的 static 代码块与 super.prop 的使用 * * - ...
- React(2) --super关键字
参考:http://www.phonegap100.com/thread-4911-1-1.html Es6中的super可以用在类的继承中,super关键字,它指代父类的实例(即父类的this对象) ...
随机推荐
- RTX修改标题logo方法
摘要: 打开“腾讯通RTX管理器”→“配置向导”→“服务运行状态”→“停止所有服务”,退出“腾讯通RTX管理器”按照如下操作.①修改到期时间为:9999-12-300:0:0 用记事本打开“C:/Pr ...
- Tutorial : Implementing Django Formsets
A step-by-step tutorial for setting up and testing a standard Django formset. I’ve noticed on #djang ...
- CSS未完
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...
- 【VS开发】【图像处理】相机中白平衡的算法模拟实现
相机主要技术点为3A算法. 而3A算法主要指的是自动对焦(AF).自动曝光(AE)及自动白平衡(AWB).自动白平衡:根据光源条件调整图片颜色的保真程度. 网上时常有类似招聘如下的招聘信息: ---- ...
- [Vuejs] 在vue各个组件中应用全局scss变量
需要安装一个插件:sass-resources-loader 1.执行安装命令: npm i sass-resources-loader --save-dev 2.修改vue-cli环境下build文 ...
- IIS配置安卓下载.apk文件
前提:你的.apk文件所在路径正确,例如:www.grainnews.com.cn:8002/Attach/Images/201807/20180712091842127.apk 1.打开IIS 2. ...
- ${pagecontext.request.contextpath}绝对路径理解
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> .也就是取出部署的应用程序 ...
- spring boot-1.简单介绍及环境搭建
1.简介 spring boot 是在spring 基础上进行了全面整合的架构,个人认为优点在于以下几点: 1.简化配置,甚至零配置即可开发出一个web应用.spring boot 默认配置了大量的s ...
- 条件运算符在GUN C中的特殊用法.
在阅读内核源码的时候,发现了条件表达式的奇怪用法,一时没有反应过来.下面的内容是从wiki转载而来,用作回顾和备忘. 转载链接:https://zh.wikipedia.org/wiki/%E6%9D ...
- Python和mysql的连接
python与mysql的连接: 说明:前提是已近安装了mysql以及可视化工具(本人装的是Navicat) 1.在cmd下下载Python的第三方数据库包:pip install pymysql: ...