【发布时间】:2020-08-12 07:33:09
【问题描述】:
有人可以举例说明 module.exports = {...} 将如何导致意外行为。
我在读你还不知道 js,我在 https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/scope-closures/ch8.md#node-commonjs-modules
有些开发者有替换默认导出的习惯 对象,像这样:
// defining a new object for the API module.exports = { // ..exports.. };这种方法有一些怪癖,包括意想不到的 如果多个这样的模块循环地相互依赖时的行为。作为 这样,我建议不要更换对象。如果你想分配 一次多次导出,使用对象文字样式定义,您 可以这样做:
Object.assign(module.exports,{ // .. exports .. });这里发生的是用你的定义 { .. } 对象字面量 指定模块的公共 API,然后 Object.assign(..) 是 对现有属性执行所有这些属性的浅拷贝 module.exports 对象,而不是替换它这是一个很好的平衡 方便和更安全的模块行为。
【问题讨论】:
-
很遗憾,他没有提供说明问题的示例。
标签: javascript node.js commonjs