javascript - 将 require 语句中的所有导出解构为局部变量

标签 javascript node.js ecmascript-6

<分区>

我有一个 js 文件导出了一堆这样的函数。

module.exports = {
  setScene : setScene,
  talk1: talk1,
  talk2: talk2,
  talk3: talk3,
  talk4: talk4,
  talk5: talk5,
  talk6: talk6,
  talk7: talk7,
  talk8: talk8,
  talk9: talk9,
  talk10: talk10,
  talk11: talk11,
  talk12: talk12,
  talk13: talk13,
  talk14: talk14,
  talk15: talk15,
  talk16: talk16,
  talk17: talk17,
  talk18: talk18,
  talk19: talk19,
  talk20: talk20,
  talk21: talk21,
  touchnose: touchnose,
  touchchin: touchchin,
  friendos: friendos,
  covermouth: covermouth,
  openmouth: openmouth,
  pointeye: pointeye,
  gameover: gameover,
  wait: wait
};

在我的 app.js 文件中,当我需要该文件时,有没有一种方法可以将所有值解构为局部变量?

const { setScene, ...wait} = require('./components/play');

我希望能够调用我的 app.js 中的函数,而无需在 require 语句中键入每个值。

最佳答案

是的,有一些聪明的事情,不要这样做。它不是默认的 有充分的理由 - 词法范围(能够跟踪每个标识符)非常重要和有用。这样做不仅会减慢您的代码速度,而且只会在不处于严格模式下时才能工作 - 它还会造成混淆。

with(require('./components/play')) {
  // all exports are available here
}

关于javascript - 将 require 语句中的所有导出解构为局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49439529/

相关文章:

javascript - 使用 json 内容对网格进行排序

javascript - 切换按钮无法正常播放音频。也是只播放一个音频元素的javascript代码

javascript - Reducer 没有将对象添加到数组中,而是添加了 null

javascript - 如何在 jQuery Mobile 中延迟页面转换,直到页面数据准备好?

javascript - 如何在 angular2 模块中使用 Soundcloud javascript sdk

javascript - 我试图在单击时从 redux 存储加载数据并更新状态,但状态中的数据在单击时没有更新

javascript - 等待设备并对网页提供响应

node.js - 无法从 NodeJS 服务器调用 Rails 端点(从 Redis pmessage 事件中)

javascript - 如何在 Worker 中导入/使用 Immutable.js

javascript - 向对象中的选择添加选项? (JS)