这里我们主要谈论三个问题:
1.constructor里的super是干啥的?
2.static关键字是什么?
3.react的类组建和函数式组建有什么区别?
1.constructor里的super是干啥的?
super关键字用于访问和调用一个对象的父对象上的函数
super类似于ES5语法中的call继承
既然 super 是一个可以调用的东西,它是一个函数么? 这个问题的答案很容易找到,可以把 super 赋值到其它变量试试,会得到一个语法错误
因为 super 的词法定义是伴随后面那对括号的
super另一种用法
除了在 constructor 里直接调用外还可以使用 super.xxx(…) 来调用父类上的某个原型方法
2.static关键字是什么?
static关键字是我们在分享react新的生命周期钩子的时候注意到的
static getDerivedStateFromProps
还有另外几个关键字:
public,private,protected
class 通过 static关键字来定义静态方法
不能在类的实例上调用静态方法只能通过类本身,但是可以被继成
public关键字
只在ts里面可以用!!!(之前是java里面的概念ts语法借鉴过来的但是JS可以通过其他的方法来模拟,注意看一下编译之后的结果)
注意看一下编译后的结果,用prototype来模拟public
public class本身可以使用 实例也可以使用 继承子类也可以使用
private关键字
private关键字很🐶,只能在class内部调用
也无法被继成
protected关键字
只能在类本身和子类本身里面用
实例里面不能用
3.react的类组建和函数式组建有什么区别?
1.传递参数的不同
2.纯函数与class
3.状态管理的不同
4.生命周期的不同