我们听说初始化类组件时,构造函数是第一个调用的函数,然后如何进入构造函数,我们便可以访问并绑定到稍后在类中定义的函数 即问,为什么我们可以在构造函数内部访问this.fn?
import React from 'react';
class A extends React.Component {
constructor(props){
super(props);
this.a = 1;
this.fn = this.fn.bind(this);
}
fn(){
console.log(this.a);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
答案 0 :(得分:1)
class
声明本身是一个“漂亮的”包装器,用于构造函数的声明和构造函数原型对象的初始化。 (还有其他一些功能,但这就是我们的目的。)
因此class
代码本身代表可执行代码,而不仅仅是静态声明。因此,在实际调用构造函数之前,会初始化原型对象。调用构造函数后,即可使用原型属性(如fn()
方法)。