exports 和module.exports的区别
时间: 2023-06-06 17:05:05 浏览: 76
exports 是 module.exports 的一个引用,它们最初都指向同一个对象。但是,如果 exports 被重新分配到一个新的对象,那么它将不再指向 module.exports,而仅仅是一个普通的对象而已。所以,如果你想要暴露一个函数或者类,你应该把它们赋值给 module.exports 而不是 exports。
相关问题
exports 和 module.exports 区别?
在Node.js中,exports和module.exports都是用于导出模块的对象。它们之间的区别在于:
1. exports是module.exports的一个引用:在模块中,exports实际上是module.exports的一个引用。当你给exports对象添加属性时,实际上是在修改module.exports对象。例如,当你写下`exports.foo = 'bar'`时,相当于写下了`module.exports.foo = 'bar'`。
2. module.exports可以直接赋值:与exports不同,module.exports可以直接赋值为一个新的对象或者一个函数。这意味着你可以完全替换导出的对象。例如,你可以写下`module.exports = { foo: 'bar' }`来导出一个包含属性foo的新对象。
综上所述,exports和module.exports的区别在于对module.exports的修改方式不同。如果你只是想向外部导出一些属性或方法,可以使用exports对象;如果你想要替换整个导出对象,应该使用module.exports。
exports 和module.exports
exports 和module.exports 都是 Node.js 中用于暴露模块的方式。它们的作用都是将模块中的方法或变量暴露出去,供其他模块使用。之所以有两种方式,是因为它们的实现机制不同。exports 是 module.exports 的一个引用,相当于对 module.exports 的属性和方法添加了一层封装,而 module.exports 则直接暴露模块的内容。如果直接给 exports 赋值会导致 exports 与 module.exports 指向不同的对象,因此应该避免直接给 exports 赋值,而应该只修改其属性或方法。
阅读全文