代码之家  ›  专栏  ›  技术社区  ›  Akshay Vijay Jain

为什么我们能够在react组件的构造函数中绑定函数?

  •  1
  • Akshay Vijay Jain  · 技术社区  · 6 年前

    我们听说当一个类组件被初始化时,构造函数是第一个被调用的函数,然后我们如何在构造函数中访问并绑定到稍后在类中定义的函数 也就是说,我们为什么能够访问这个。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>
    1 回复  |  直到 6 年前
        1
  •  1
  •   Pointy    6 年前

    这个 class 声明本身是一个“漂亮”的包装器,用于包装构造函数函数的声明和构造函数原型对象的初始化。(还有一些其他特性,但就我们的目的而言,就是这样。)

    因此 代码本身代表可执行代码,而不仅仅是静态声明。因此,在实际调用构造函数之前,会初始化原型对象。调用构造函数时,原型属性(如 fn() 方法)已准备好使用。