node的模块化
模块的分类
- 内置模块(核心模块) 由node官方提供。常见的有:fs,path,http等
- 自定义模块 用户创建的每一个js文件都是一个自定义模块。
- 第三方模块 由第三方开发,使用之前需要下载安装。
模块作用域
和函数作用域类似,在自定义模块中的变量,函数等成员,只能在当前模块中使用,这种模块级别的访问限制,就叫做模块作用域。
好处:防止全局变量污染。
模块的导入和导出
导出
新建一个a.js文件,里面的代码如下:
//导出一个对象,对象中的值就被暴露出去了。
module.exports = {
name:"刘德华",
act(){
console.log("之前我没得选,现在我想做一个好人")
},
age:35
}
导入
新建一个b.js文件,里面的代码如下:
const ldh = require("./a.js")
console.log(ldh.age)
console.log(ldh.name)
ldh.act();
//或者使用解构赋值
const {name} = require("./a.js") //只接受name的值
console.log(name)
【注意】 【module.exports = { name:‘刘德华’}】 和 【module.exports.name = '刘德华'】的区别
前者是创建的新的对象,将原对象覆盖。后者是在原对象上添加一个新的属性。