- module对象
1.1 Node内部提供一个Module构造函数,所有函数都是Module的实例。
function Moudle(id,parent) {this.id = id;this.exports = {};this.parent = paremt;//...}
1.2 每个模块内部都有一个module对象,代表当前模块。
> module.id 模块的识别符,通常是带有绝对路径的模块文件名
> module.filename 模块的文件名,带有绝对路径。
> module.loaded 返回一个布尔值,表示模块是否已经完成加载
> module.parent 返回一个对象,表示调用该模块的模块
> module.children 返回一个数组,表示该模块要用到的其他模块。
> module.exports 表示模块对外输出的值
1.3 module.exports: 表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。
1.4 exports: 每个模块还提供一个exports变量,指向module.exports。
这等于在每个模块头部,有一行隐藏的代码:
var exports = modele.exports;
可直接在exports方法上添加属性和方法,但是不可以直接赋值,同时调用exports和module.exports会被覆盖。
