javascript - var module = require() 还是 const {module} = require()?

标签 javascript node.js node-modules require

这两个 require 方法有什么区别:

1. var xx = require('module')
2. const {xx} = require('module')

我看到第一个onde我可以访问xx作为变量,所有脚本都由模块导出..第二个xx未定义。如何访问第二个“方法”或者它是否也是构造模块以使用 {}

谢谢

最佳答案

第一个将完整模块句柄放入名为 xx 的变量中。

第二个从模块句柄获取 xx 属性并将其放入名为 xx 的变量中。因此,第二个与以下相同:

const xx = require('module').xx;

第一个是使用 var ,第二个是使用 const ,但我假设您已经知道这种区别。

<小时/>

换一种方式说:

这个:

const {xx} = require('module');

是一个快捷方式:

const xx = require('module').xx;

当您想要从模块中获取一堆属性并将它们全部分配给模块中的顶级变量时,使用 require() 时,它作为快捷方式最有用,如下所示:

const {xx, yy, zz, aa, bb, cc} = require('module');

如果您不使用对象解构语法,这显然需要比单行更多的代码来复制。

仅供引用,所有这些都只是对象解构的一种形式(ES6 中添加到 Javascript 的功能)。这并不是 require() 特有的东西,只是 require() 通常会返回一个带有一堆人们感兴趣的属性的对象。请参阅这篇文章 "A Dead Simple into to Destructuring"很好地总结了对象解构的作用。

关于javascript - var module = require() 还是 const {module} = require()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250163/

相关文章:

javascript - Node 和使用 Node 模块的项目之间有什么联系?

javascript - 如何修复 - 找不到模块 : Can't resolve '@babel/runtime/helpers/objectWithoutPropertiesLoose'

node.js - 请求调用使用 Request 的函数

javascript - 无法获取 Controller 中的数据

javascript - 显示分数后按钮消失

javascript - 将控制台传输附加到 Winston 日志记录

javascript - 异步 node.js 调用中的错误处理

node.js - Express如何区分静态请求和动态请求?

javascript - jquery 验证忽略动态添加的字段

javascript将值分配给函数中的全局变量不起作用