module.exports = { fn } 和 exports.fn = fn 的作用都是将函数 fn 导出为模块的一个方法或属性。它们在实现上有一些微妙的差别。
- module.exports = { fn }:
- 这种方式是直接将一个对象赋值给 module.exports,该对象包含了一个名为 fn 的属性,其值为函数。
- 这样,在模块外部通过 require 导入该模块后,可以使用模块名作为对象来调用这个函数,例如:const myModule = require('./myModule'); myModule.fn();
- 这种方式适用于导出多个方法或属性。
- exports.fn = fn:
- exports 是 module.exports 的一个引用,它初始化为空对象 {}。
- 这种方式是将函数 fn 直接赋值给 exports 对象的一个属性 fn。
- 在模块外部通过 require 导入该模块后,可以直接使用属性名作为函数名来调用这个函数,例如:const myModule = require('./myModule'); myModule.fn();
- 这种方式适用于只导出一个方法或属性。
因此,对于给定的问答内容,module.exports = { fn } 和 exports.fn = fn 是等价的,都可以用来导出函数 fn 作为模块的一个方法或属性。在使用时可以根据实际情况选择合适的方式。