javascript - var module = require() 还是 const {module} = require()?
问题描述
这两种 require 方法有什么区别:
1. var xx = require('module')
2. const {xx} = require('module')
我看到第一个我可以访问 xx 作为变量的 onde,所有脚本都由模块导出..第二个 xx 未定义。如何访问第二个“方法”或者它是一个方法太构造模块来使用{}
谢谢
解决方案
第一个将完整的模块句柄放在一个名为xx
.
第二个xx
从模块句柄中获取属性并将其放入名为 的变量中xx
。因此,第二个将与以下内容相同:
const xx = require('module').xx;
第一个是 using var
,第二个是 using 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”,了解对象解构作用的一个很好的总结。
推荐阅读
- android - 与颤振共享变量的最佳方法是什么?
- c# - NAudio 总是在两个通道上并行播放一个 mp3
- javascript - mark.js markRanges() 不尊重 HTML 元素
- python-3.x - 在熊猫数据框中检测星期六并修改行中的值
- python - Python Selenium iissue
- reactjs - 为什么安装webpack时会出现这种错误
- html - 缩放时如何修复我的网页布局混乱?
- apache-spark - pyspark - “col”函数的真正用途是什么
- c# - 添加另一个用户身份服务时添加身份时的“方案已存在:Identity.Application”
- bash - 如何从 awk 命令获取下一行