- CommonJS规定,每一个JS都是一个单独的模块(模块是私有的:里面涉及的值和变量以及函数等都是私有的,和其它JS文件中的内容不冲突)
- CommonJS中可以允许模块中的方法互相调用
B模块想要调取A模块的方法
A导出 B导入
[导出]
CommonJS给每一个模块都设置了内置的变量/属性/方法
module: 代表当前这个模块对象
module.exports : 模块这个属性用来导出“属性”方法的
exports: 是内置的一个“变量”,也是用来导出当前的属性方法的,和module.exports对应的值是同一个,值都是对象
//temp1.js
let a = 12;
let fn = b => {
return a * b;
}
exports.fn = fn;//把当前
[导入]
require:CommonJS提供的内置变量,用来导入模块的
let temp1 = require('./temp1');//./特意指定是当前目录中的某个模块,require是同步操作
CommonJS特点:
1.所有代码运行在模块作用域,不会污染全局作用域
2.模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果放在缓存。要想让它再次运行,必须清除缓存。
3.模块加载的顺序,按照其在代码中出现的顺序
4.CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作