使用const来请求一个模块

使用const来请求一个模块

问题描述:

在我的一个NodeJS应用程序中,我注意到了下面的代码;使用const来请求一个模块

const { Function } = require('./modules/helpers.js') 

这有效吗?还需要使用const的任何好处?

是,destructuring assignment是一个有效的语法:

的解构赋值语法是JavaScript表达式,使得它可以从对象解包从数组值或属性,为不同的变量。

({a, b} = {a: 10, b: 20}); 
console.log(a); // 10 
console.log(b); // 20 

参见:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

编辑:

至于好处,它是在大多数的情况下的语法糖。它允许您直接将导入功能称为Function而不是Helper.Function

它也可以reduce your bundle.js file size

+0

非常感谢...这是ES6的特定语法/代码吗? – testndtv

+0

这里还有使用“const”的意义吗? – testndtv

+0

向下滚动链接中的关键字以查找该答案....是的。 – user3732793

使用const有一些大的改进为你自​​己。所以你不能再改变你的导入模块了。这个导入的模块被称为 immutable,这对于某些点来说确实很好。欲了解更多看看在这里:Short Introduction into immutable data structures

编辑const并不真正意味着一个值是不能改变了,但它意味着,在这一点上的对象不能被重新分配。 (感谢@马克Stosberg再次指出了这一点)

(简单的代码更容易推理,这是对良好的代码风格)

而且语法是有效ES6自毁语法。确保你的模块输出一个名为Function的变量。欲了解更多,请看这里:MDN Destruction Syntax

+2

导入的模块保持可变。从[const的官方文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const):* const声明创建对值的只读引用。这并不意味着它所拥有的价值是不可变的,只是变量标识符不能被重新分配。* –