在 CommonJS 模块系统中,exports、module.exports 和 this 是三个非常重要的对象,它们用于导出模块中的变量、函数或类。下面分别介绍这三个对象,并通过示例代码进行说明。
1. exports
exports 是一个对象,用于将模块中的变量、函数或类导出。默认情况下,exports 是 module.exports 的一个引用。
2. module.exports
module.exports 是一个对象,用于显式地导出模块中的内容。与 exports 不同的是,module.exports 可以被赋值为任何类型的值,包括对象、函数、类等。
3. this
在模块的上下文中,this 通常指向 exports 对象。这意味着你可以使用 this 来导出模块中的内容。
示例代码
假设我们有以下两个文件:example.js 和 main.js。
example.js
1 | // example.js |
main.js
1 | // main.js |
在上面的 main.js 文件中,我们分别调用了 example.js 中通过 exports、module.exports 和 this 导出的函数。
总结
exports是一个对象,用于将模块中的内容导出。module.exports可以被赋值为任何类型的值,用于显式地导出模块中的内容。(require 引入得到的东西)this通常指向exports对象,可以用于快捷地导出模块中的内容。
在实际开发中,推荐使用 module.exports 来导出模块,因为它提供了更大的灵活性。