CommonJs 模块规范:随手笔记

164 阅读1分钟

规范:一个约定好的游戏规则而已


  • 应用:Node应用由模块组成,而它的模块规则就是使用的CommonJs 规范

  • 特点:

    1. 模块拥有独立的作用域,文件之间相互独立,互补影响。
    2. 模块被使用时,允许多次加载,但是模块会在第一次加载时缓存下来。
    3. 模块加载顺序,是按照代码出现的顺序进行加载的。
  • node 模块化的本质是:内置一个Module构造函数,其他模块是Module 的实例(工厂模式)。

    实例化后的 Module 抛出相应的方法和变量

    1. module.id 模块识别符(身份码),通常是带有绝对路径的模块文件名称。
    2. module.filename 模块文件名称,带有绝对路径。
    3. module.loaded 返回一个bool 表示模块是否完成加载。
    4. module.parent 返回一个对象,表示调用该模块的模块(caller 谁调了)
    5. module.children 返回一个数组,表示该模块要用的其他模块(callee 调了谁)
    6. module.exports 表示模块对外输出的值。

    关于node 中的exports变量的说明

    为了方便使用,Node 为每个模块提供了一个exports 变量,指向module.exports, 需要注意的是:对exports 重新赋值,将会改变原来的指向。

    关键词:本地、同步执行、构造函数

    本意是为了串联构造函数、原型、原型链

    参考链接:CommonJS规范