我对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
它将该调用的返回值导出为默认导出