在 JavaScript 中,使用模块还是类更好?

Jas*_*ach 3 javascript architecture node.js

在 ES6 中,我们可以class像往常一样导出模块中的 a 或仅导出函数。是其中一个更好还是另一个更好?

我的想法是,如果一个人想要一个更实用的外观和感觉,那就选择导出函数,而一种更面向对象的方法是导出一个类。

jfr*_*d00 7

ES6 中类的要点是能够通过调用构造函数来创建对象(实例),并且这些对象具有属性和对这些属性进行操作的方法。

因此,如果您正在创建一个模块,打算公开一种创建具有方法和属性的新对象的方法,那么一定要公开一个构造函数或工厂函数,可以调用它们来创建所需类型的对象。

但是,如果您想从模块共享的只是一些可以单独使用的函数,那么确实没有理由使用 ES6 类,因为导出具有多个函数作为属性的普通对象对于仅共享某些函数来说是完全可以接受的可以独立调用。

所以,答案是,这取决于您尝试从模块共享的内容。

当然,你也可以导出一个带有一堆静态方法的类,但是与仅导出一个带有函数作为属性的普通对象相比,这并没有什么特别的优势,因此没有特别的理由为此使用 ES6 类(除了语法之外)模块内的偏好)。