使用ES6类的nodejs modules.exports

Tec*_*ner -4 javascript node.js ecmascript-6

我只是在学习来自ES5功能的ES6。

某些事情确实让我感到困惑:

我们有出口,例如,

function B(){
// Some definition
}

exports.modules = B();
Run Code Online (Sandbox Code Playgroud)

如果我们使用基于类的语法,那是否意味着我们根本不需要导出?(如果不是,我们该怎么写?)您实际上何时需要使用导出?(与使用“ new”关键字调用构造函数相反)。有什么不同?

个人想法:

ES6感觉就像我正在用javascript编写Java代码:-\我喜欢函数式编程,但看起来ES6是必经之路(我的一部分讨厌新语法,但另一半却想尝试一下。。有人在这里吗? )

请赐教。

Ber*_*rgi 5

如果我们使用基于类的语法,那是否意味着我们根本不需要导出?

不。那两个绝对没有关系。

  • class 语法是关于定义构造函数和原型方法的。
  • exports 关于使值可用于其他文件(模块),这些值特定于您正在使用的环境(node.js),而不是特定于语言。

因此,即使您从切换function Bclass B,也不会改变模块系统的任何内容。如果你从common.js风格ES6模块语法更改为导出Bnew B()也好,不改变有关的任何声明B

ES6感觉就像我正在用javascript编写Java代码:-\我喜欢函数式编程,但是看起来ES6是可行的方式。

ES6 class语法只是构造函数和原型的糖(使读/写更容易/更短)。如果您从事函数式编程并且以前没有使用过构造函数,则也不会使用它们ES6。