module.exports和exports的区别
时间: 2023-05-02 11:05:25 浏览: 57
module.exports和exports是node.js中用于导出模块的两种方式。它们的区别在于module.exports是真正的导出对象,而exports只是一个指向module.exports的变量。如果你只是想导出一个对象或一个函数,使用exports是完全可以的。但是,如果你想替换整个导出对象,则必须使用module.exports。
相关问题
module.exports 和exports区别
在Sea.js中,module.exports和exports都是用于暴露模块成员的方式,但它们之间有一些区别。
1. module.exports是一个指向当前模块导出对象的引用,它是真正用于导出模块成员的对象。当我们使用module.exports时,我们可以直接给它赋值一个对象、函数或其他任何类型的值,这样就可以将该值作为模块的导出成员。
2. exports是module.exports的一个引用,它是一个空对象,最初指向module.exports。当我们使用exports时,实际上是在给module.exports添加属性。例如,当我们使用exports.doSomething = function() {}时,实际上是在给module.exports添加了一个名为doSomething的属性,并将其值设置为一个函数。
3. 由于exports是module.exports的引用,所以当我们给exports赋值一个新的对象时,它将不再指向module.exports,而是指向新的对象。这意味着,如果我们只使用exports来导出模块成员,而不使用module.exports,那么最终导出的结果将是一个空对象,而不是我们期望的成员。
总结来说,module.exports是真正用于导出模块成员的对象,而exports只是module.exports的一个引用。如果我们只使用exports来导出模块成员,那么最终导出的结果将是一个空对象。
module.exports和exports区别
module.exports和exports都是Node.js中用于导出模块的关键字,但是它们之间有一些区别。
module.exports是一个对象,可以通过给它赋值来导出模块。例如:
```
module.exports = {
foo: 'bar'
};
```
exports是module.exports的一个引用,可以通过给它添加属性来导出模块。例如:
```
exports.foo = 'bar';
```
但是,如果你给exports赋值一个新的对象,它将不再指向module.exports,因此不会导出模块。例如:
```
exports = {
foo: 'bar'
};
```
因此,如果你想导出一个对象,最好使用module.exports。如果你想导出一个函数或一个类,可以使用exports。