在JavaScript中使用模块或类更好吗?

时间:2016-11-14 00:29:58

标签: javascript node.js architecture

在ES6中,可以在模块中导出class,或者按照惯例导出函数。是其中一个更好吗?

我的意思是,如果想要一个更实用的外观和感觉去导出函数,那么更多的OOP方法就是导出一个类。

1 个答案:

答案 0 :(得分:4)

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

因此,如果您正在创建一个旨在公开创建具有方法和属性的新对象的方法的模块,那么通过所有方法公开可以调用的构造函数或工厂函数来创建对象期望的类型。

但是,如果你想从模块中共享的是一些可以自己使用的函数,那么实际上没有理由使用ES6类,因为导出一个具有多个函数作为属性的普通对象是完全可以接受只是共享一些可以独立调用的函数。

所以,答案是,这取决于你试图从模块中分享的内容。

当然,您也可以使用一堆静态方法导出一个类,但这并不比仅仅导出一个具有属性作为属性的普通对象提供特别的优势,因此没有特别的理由使用ES6类为此(除了模块中的语法首选项)。