我对export default ExampleFunc的用法很熟悉,因此ExampleFunc可以作为import Func from 'filename.js'导入到其他文件中。

但是,我遇到了export default的用法,该用法将对象导出到同一文件中的类。以下代码是否实例化Container对象?

import ExampleComp from 'file.js';

class Container extends React.Component {
  render() {
    dostuff;
  }
}

export default ExampleComp({key:value})(Container)

最佳答案

以下代码是否实例化Container对象?


该代码没有(不是),但是可能会导致创建一个或多个代码,具体取决于函数ExampleComp返回的代码与接收到的参数的关系:如果函数ExampleComp返回,则创建一个实例(或多个实例),将new与接收到的内容一起使用,然后是。如果不是,则否。 (也就是说,如果不打算使用该参数来创建实例,似乎不太可能采用该参数。)

让我们分解一下ExampleComp({key:value})(Container)的作用:


它创建一个对象:{key:value}
它将那个对象作为参数传递给函数ExampleComp。显然(从代码中),ExampleComp返回一个函数
它调用从ExampleComp获得的函数作为返回值,并传入Container
它将该调用的返回值导出为默认导出

10-06 08:16