首页 > 其他 > 详细

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

时间:2019-09-29 15:59:39      阅读:57      评论:0      收藏:0      [点我收藏+]

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()的使用

原文:https://www.cnblogs.com/jiuxu/p/11607956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!