【发布时间】:2017-08-29 18:52:20
【问题描述】:
在我的一个 NodeJS 应用程序中,我注意到以下代码;
const { Function } = require('./modules/helpers.js')
这有效吗?将 const 用于 require 有什么好处?
【问题讨论】:
标签: javascript node.js
在我的一个 NodeJS 应用程序中,我注意到以下代码;
const { Function } = require('./modules/helpers.js')
这有效吗?将 const 用于 require 有什么好处?
【问题讨论】:
标签: javascript node.js
是的,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。
【讨论】:
requires 最好使用const,这样导入的函数就无法更改。但是,const 不会使对象不可变。
使用const 对您自己有一些重大改进。所以你不能再改变你导入的模块了。这个导入的模块就是所谓的immutable,这在某些方面确实很好。更多内容请看这里:Short Introduction into immutable data structures
编辑:const 并不真正意味着值不再可更改,而是意味着此时无法重新分配对象。 (感谢@Mark Stosberg 再次指出这一点)
(只是代码更容易推理,而且代码风格很好)
语法是有效的 ES6 破坏语法。确保您的模块导出了一个名为 Function 的变量。更多信息请看这里:MDN Destruction Syntax
【讨论】: