我是否必须导出Javascript ES6中另一个导出类返回的返回类?
考虑以下模块:我是否必须导出Javascript ES6中另一个导出类返回的返回类?,javascript,class,design-patterns,export,es6-modules,Javascript,Class,Design Patterns,Export,Es6 Modules,考虑以下模块: export class Bar { generateFoo() { return new Foo(1); } } class Foo { constructor(fooValue) { this.fooValue = fooValue; } doFoo() { console.log(this.fooValue); } } 我应该在任何情况下也导出Foo?为什么 在任何情况下我也应该出口Foo
export class Bar {
generateFoo() {
return new Foo(1);
}
}
class Foo {
constructor(fooValue) {
this.fooValue = fooValue;
}
doFoo() { console.log(this.fooValue); }
}
我应该在任何情况下也导出Foo
?为什么
在任何情况下我也应该出口Foo吗?为什么
从模块导出某些内容的唯一原因是您希望外部代码能够直接调用或引用它。如果您希望客户端能够创建Foo
对象的唯一方法是调用bar.generateFoo()
,则没有理由导出Foo
。在Javascript中,您可以完全引用已构造对象上的所有Foo
方法,而无需导出类本身
另一方面,如果您希望模块的某个客户端能够使用new Foo(someValue)
直接实例化Foo
对象,则需要导出Foo
,以实现这一点
导出类就是导出构造函数。因此,如果希望有人能够直接调用构造函数(例如,使用newfoo()
构造一个新对象),则需要执行该导出。如果他们不需要直接调用构造函数,那么您就不需要导出它