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);
運行結果: