我熟悉使用导出默认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)
最佳答案
Does the following code instantiate a
Container
object?
该代码不会,不会,但它可能会导致创建一个或多个,具体取决于函数 ExampleComp
返回的代码对参数的处理方式它接收:如果函数 ExampleComp
返回通过使用 new
及其接收的内容创建一个实例(或多个实例),那么是的。如果没有,那就不行。 (也就是说,如果它不打算使用该参数来创建实例,它似乎不太可能采用该参数......)
让我们详分割析一下 ExampleComp({key:value})(Container)
的作用:
- 它创建一个对象:
{key:value}
- 它将该对象作为参数传递给函数
ExampleComp
;显然(从代码来看),ExampleComp
返回一个函数 - 它调用从
ExampleComp
获取的函数作为返回值,并传入Container
- 它将调用的返回值导出为默认导出
关于Javascript "export default"到同一文件中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468157/