gpt4 book ai didi

javascript - 我应该/必须导出 Javascript ES6 中另一个导出类返回的返回类吗?

转载 作者:行者123 更新时间:2023-12-02 21:00:08 24 4
gpt4 key购买 nike

考虑以下模块:

export class Bar {

generateFoo() {
return new Foo(1);
}

}

class Foo {

constructor(fooValue) {
this.fooValue = fooValue;
}

doFoo() { console.log(this.fooValue); }

}

在任何情况下我都应该导出 Foo 吗?为什么/为什么不?

最佳答案

Should I export Foo too in any situation? Why/Why not?

从模块导出某些内容的唯一原因是您希望外部代码能够直接调用或引用它。如果您希望客户端能够创建 Foo 对象的唯一方法是调用 bar.generateFoo(),那么就没有理由导出 Foo。在 Javascript 中,您可以完全引用已构造对象上的所有 Foo 方法,而无需导出类本身。

另一方面,如果您希望模块的某些客户端能够使用 new Foo(someValue) 直接实例化 Foo 对象,那么您将需要导出 Foo 才能实现这一点。

导出类就是导出构造函数。因此,如果您希望有人能够直接调用构造函数(例如使用 new Foo() 构造一个新对象),您需要执行该导出。如果他们不需要直接调用构造函数,那么您就不需要导出它。

关于javascript - 我应该/必须导出 Javascript ES6 中另一个导出类返回的返回类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61376004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com