[摘抄] 5.模块的加载机制
5.模块的加载机制 CommonJS模块的加载机制是,输入的是被输出的值的拷贝,也就是说一旦输出一个值,模块内部的变化就影响不到这个值。 下面是一个模块文件 lib.js // lib.js var counter = 3; function incCounter(){ counter ++; } module.exports = { counter, incCounter } 上面代码输出内部变量 counter 和改写这个变量的内部方法 incCounter 。 然后加载上面的模块。 // main.js var counter = require('./lib').counter; var incCounter = require('./lib').incCounter; console.log(counter) //3 incCounter(); console.log(counter) //3 上面代码说明, counter 输出以后,lib.js模块内部的变化就影响不到 counter 了 # 5.1 require的内部处理流程 require 命令是CommonJS规范之中用来加载其他模块命令。 他其实不是一个全局命令,而是指向当前模块的 module.require 命令,而后者又调用Node的内部命令, Module._load 。 Module._load =