版权声明:哼!坏人!这是我辛辛苦苦码的! https://blog.csdn.net/DurianPudding/article/details/88118466
参考:前端模块化
commonJS 规范规定,每个模块内部,module
变量代表当前模块。这个变量是一个对象,它的 exports
属性(即 module.exports
)是对外的接口。加载某个模块,其实是加载该模块的 module.exports
属性。
// 定义模块math.js
var basicNum = 0;
function add(a, b) {
return a + b;
}
// 定义当前模块对外输出的接口
module.exports = { // 在这里协商需要向外暴露的函数、变量
add: add,
basicNum: basicNum
};
// 用require加载模块
var math = require('./math');
console.log(math.add(2, 5)); // 7
commonJS用同步的方式加载模块,即脚本代码在 require
的时候,就会全部执行。一旦出现某个模块被”循环加载”,就只输出已经执行的部分,还未执行的部分不会输出。