一、模块化的定义
①具有文件作用域
②具有通信规则:加载和导出规则
二、CommonJS模块规范
1.nodejs中的模块系统,具有文件作用域,也具有通信规则,使用require方法加载模块,使用exports接口对象导出模块中的成员
2.加载require
①语法:
var 自定义变量名称 = require(‘模块’)
②两个作用:执行被加载模块中的代码,得到加载模块中的exports导出接口对象
3.导出exports
①nodejs中的是模块作用域,默认文件中的所有成员只在当前文件模块有效
②对于希望可以被其他模块访问的成员,可以挂载到exports接口对象中
③导出多个成员(必须在对象中):
//导出数字 exports.a=123; //导出字符串 exports.b='hello'; //导出函数 exports.c=function(){ console.log('good'); } //导出对象 exports.d={ foo:'bar' }
④导出单个成员(拿到的是就是:函数或者字符串):
moudle.exports='hello';
⑤以下情况会覆盖
module.exports='hello'; module.exports={ num:123, str:'world' }
⑥也可以这样来导出多个成员
module.exports={ num:123, str:'world', add:function(x,y){ return x+y; } }
⑦原理解释:exports是moudle.exports的一个引用