1.constructor()---super( )的基本含义

constructor()——构造方法

这是ES6对类的默认方法,通过new命令生成对象实例时自动调用该方法。并且,该方法是类中必须有的,如果没有显式定义,则会默认添加空的constructor()方法。

super() ——继承

在class方法中,继承是使用 extends 关键字来实现的。子类必须在 constructor()中调用 super()方法,否则新建实例时会报错。
报错的原因是:子类是没有自己的this对象的,它只能继承自父类的this对象,然后对其进行加工,而super()就是将父类中的this对象继承给子类的。没有super,子类就得不到this对象。

2.Es5---Es6关于继承的实现不同之处

出现上面情况的原因是,ES5的继承机制与ES6完全不同。

复习一个重要知识点——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。

3.super(props)---super()---以及不写super的区别

如果你用到了constructor就必须写super(),是用来初始化this的,可以绑定事件到this上;
如果你在constructor中要使用this.props,就必须给super加参数:super(props);
(无论有没有constructor,在render中this.props都是可以使用的,这是React自动附带的)
如果没用到constructor,是可以不写的;React会默认添加一个空的constructor。

本文转自:https://blog.csdn.net/chjj0904/article/details/79291117

react中constructor()和super()的具体含义以及如何使用的更多相关文章

  1. react的constructor和super的具体含义和使用

    1.constructor( )-----super( )的基本含义 这是ES6对类的默认方法,通过 new 命令生成对象实例时自动调用该方法.并且,该方法是类中必须有的,如果没有显示定义,则会默认添 ...

  2. react中constructor和super()以及super(props)的区别。

    react中这两个API出镜率超级高,但是一直不太懂这到底是干嘛的,有什么用:今天整理一下,方便自己查看同时方便大家. 1.constructor( )-----super( )的基本含义 const ...

  3. React关于constructor与super(props)之间的相爱相杀

    我们先把菜鸟教程的一段代码拿过来分析一下.下面这段代码是用了将生命周期方法添加到类中实现时钟效果. // 将生命周期方法添加到类中 class Clock extends React.Componen ...

  4. 源于react里面constructor()和super()的使用

    es5里面没有继承的话 //构造函数 function People(name,age){ this.age = age; this.name = name } let p1 = new People ...

  5. React中super(props)和super()以及不写super()的区别

    一.constructor()和super()的基本含义 constructor() -- 构造方法 这是ES6对类的默认方法,通过new命令生成对象实例自动调用的方法.并且,该方法是类中必须要有的, ...

  6. 如何理解react中的super() super(props)

    class WebSite extends React.Component { constructor() { super(); this.state = { name: "菜鸟教程&quo ...

  7. React中构造函数constractor,为什么要用super(props)

    前言 昨天晚上公司组织了前端分享会,在讲到React Class方法的时候,有的同学提出,为什么构造函数一定要super,我记得我之前看的黑马视频里面有讲过,就再翻出来 内容 React官方中文文档里 ...

  8. class实现React继承以及constructor的super的问题

    看这篇文章之前 建议先看看阮一峰 的Class继承 便于更好的理解 首先要知道一个问题 React的父子组件和组件类的继承有什么关系?答案是:没有关系 父子组件:指的得是组件标签包含关系 父子组件通过 ...

  9. React中的三大属性

    一.前言: 属性1:state 属性2:props 属性3:ref 与事件处理 二.主要内容: 属性1:state 1,认识: 1) state 是组件对象中最重要的属性,值是一个对象(可以包含多个数 ...

随机推荐

  1. Python终极coding

    作为一名程序员,除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键.因为从一个人的代码可以直接看出你的基本功.对于Python而言,这就意味着你需要对Python的内置功能和库有很深入的了解. ...

  2. I/O模型

    目录: IO模型 阻塞IO 非阻塞IO IO多路复用 异步IO 总结: 1.阻塞IO模型 多线程 多进程 线程池 进程池 全是阻塞IO 2.非阻塞IO 协程是一种非阻塞IO 1.setblocking ...

  3. HDU 6108(整除判断 数学)

    题意是求在给定的 P 进制下,满足条件的数字 B 有多少.条件:若任何一个数的各位数字之和能被 B 整除,则该数可被 B 整除. 在 p 进制下,每个正整数都可以都可以表示为:a0*p^0 + a1* ...

  4. ElasticSearch 索引 剖析

    ElasticSearch index 剖析 在看ElasticSearch权威指南基础入门中关于:分片内部原理这一小节内容后,大致对ElasticSearch的索引.搜索底层实现有了一个初步的认识. ...

  5. jpa返回List<Map<String, Object>>相当于jdbctemplate的queryForlist

    public class Test(){ @PersistenceContext(unitName = "manageFactory") protected EntityManag ...

  6. Nginx web 服务器 安装篇

    Nginx介绍: 静态web服务器有Nginx .Apache .lighttpd等 目前国内用的最常见的就是Nginx 和Apache 是一个开源的.支持高性能.高并发的www服务和代理服务软件,N ...

  7. Json解析数据导致顺序改变问题

    json解析的时候,通常顺序会发生改变,如果我们有保持原有顺序的需求的话可以通过如下方式 1.使用fastJson的Feature.OrderedField JSONObject respJson = ...

  8. webpack dev-server 允许移动端调试

    "dev": "cross-env NODE_ENV=development webpack-dev-server --host 0.0.0.0 --open --hot ...

  9. sed 使用行号与关键字匹配限定行范围

    1.打印匹配数字4 到最后一行 [111 sed]$ cat input [111 sed]$ sed -n '/4/,$p' input

  10. IIS无法删除应该程序池 因为它包含X个应用程序

    今天代码主分支在vs2015创建了虚拟目录http://localhost/webapp指向的物理路径是E:\webapp 之后新开了一个分支把代码放在了D:\webapp之后又在vs2015中创建了 ...