目录
基本概念
- 一个JS文件就是一个模块
- 每个JS文件的代码都是独立运行的,属于局部函数,不能以全局函数来使用,因此JS文件里的函数和变量在其他文件里无法使用
模块分类
- 内置模块(由Node.js官方提供的,例如fs、path、http等)
- 自定义模块(用户创建的js文件,都是自定义模块)
- 第三方模块(由第三方或开发社区开发出来的模块,并非官方内置的模块,也不是用户自定义创建的,使用前需下载)
模块作用域
- 什么是模块作用域?
和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。 - 好处
解决全局变量污染的问题,避免多个变量、方法命名重复的问题
共享成员
- module对象
在每个自定义模块中,都有个module对象,存储了当前的模块信息 - module.exports对象
在自定义模块中,可以使用nodule.exports对象,将模块内的成员共享出去,供外界使用
外界用 require0 方法导入自定义揽块时,得到的就是module.exports所指向的对象 - 共享成员时的注意点
使用require0方法导入模块时,导入的结果,永远以module.exports指向的对象为准 - exports 对象
由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports 对象。默认情况下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 module.exports 指向的对象为准 -
exports 和 module.exports 的使用误区
谨记:最终得到的永远是 module.exports 指向的对象
PS:为避免混乱,建议不要在同一模块同时使用 exports 和 module.exports
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/4540.html