1. module对象
      1.1 Node内部提供一个Module构造函数,所有函数都是Module的实例。
    1. function Moudle(id,parent) {
    2. this.id = id;
    3. this.exports = {};
    4. this.parent = paremt;
    5. //...
    6. }

    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会被覆盖。