CommonJSnode
require规则json
require特性缓存
require特性1的例子:ui
02_cusmod.jsthis
console.log('this is a module'); const testVar = 100; function test(){ console.log(testVar); } //对外进行两个输出 module.exports.testVar = testVar module.exports.testFn = test;
调用它的 04_cache.jsspa
require('./02_cusmod.js');
require('./02_cusmod.js');
若是不是只加载一次的话,那么运行04_cache.js控制台就会输出两次 this is module 这句话code
但是blog
require特性2的例子:(平常要避免出现这种状况)接口
05_modA.js作用域
module.exports.test = 'A'; const modB = require('./06_modB.js') console.log('modA的执行结果'+modB.test); module.exports.test = 'AA'
06_modB.js
module.exports.test = 'B' const modA = require('./05_modA.js') console.log('modB的执行' + modA.test); module.exports.test='BB'
07_main.js
const modA = require('./05_modA.js') const modB = require('./06_modB.js')//由于modA 里面已经调用了modB,因此这里调用的modB只是从缓存里读出
console.log(modA.test);
console.log(modB.test);
运行结果: