代码之家  ›  专栏  ›  技术社区  ›  Luke Vo

我是否必须导出Javascript ES6中另一个导出类返回的返回类?

  •  0
  • Luke Vo  · 技术社区  · 5 年前

    考虑以下模块:

    export class Bar {
    
        generateFoo() {
            return new Foo(1);
        }
    
    }
    
    class Foo {
    
        constructor(fooValue) {
            this.fooValue = fooValue;
        }
    
        doFoo() { console.log(this.fooValue); }
    
    }
    

    我应该出口吗 Foo 在任何情况下也是?为什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   jfriend00    5 年前

    从模块中导出某些内容的唯一原因是希望外部的代码能够直接调用或引用它。如果你想让你的客户 Foo 对象是通过调用 bar.generateFoo() ,那么就没有理由出口了 . 在Javascript中,您可以完全引用所有

    new Foo(someValue) ,则需要导出

    导出类就是导出构造函数。因此,如果希望有人能够直接调用构造函数(例如,使用 new Foo() ). 如果它们不需要直接调用构造函数,那么就不需要导出它。

    推荐文章