首页 > 解决方案 > Javascript“导出默认值”到同一文件中的类

问题描述

我熟悉使用,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)

标签: javascriptreactjscontainers

解决方案


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

代码不会,不,但它可能会导致创建一个或多个,具体取决于函数中的代码ExampleComp返回对其接收的参数所做的事情:如果函数返回,则使用withExampleComp创建一个实例(或多个实例)new它收到什么,然后是的。如果没有,那就没有。(也就是说,如果它不打算使用它来创建实例,它似乎不太可能采用该参数......)

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

  • 它创建一个对象:{key:value}
  • 它将该对象ExampleComp作为参数传递给函数;显然(来自代码),ExampleComp返回一个函数
  • 它调用它得到的函数作为返回值ExampleComp,传入Container
  • 它将调用的返回值导出为默认导出

推荐阅读