簡體   English   中英

我應該/是否必須導出 Javascript ES6 中另一個導出的 class 返回的 class?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM