[英]How do I export an ES6 class and construct an instance of it in another module?
[英]Should/do I have to export returning class returned by another exported class in Javascript ES6?
考慮以下模塊:
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 中,您可以完全引用已構建的 object 上的所有Foo
方法,而無需導出 class 本身。
另一方面,如果您希望模塊的某些客戶端能夠使用new Foo(someValue)
直接實例化Foo
object ,那么您需要導出Foo
以使其成為可能。
導出 class 就是導出構造函數 function。 因此,如果您希望某人能夠直接調用構造函數(例如,使用new Foo()
構造一個新的 object ),則需要執行該導出。 如果他們不需要直接調用構造函數,那么你不需要導出它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.