一:知识点:
1-1: 模块初始化:
1-2 主模块:
二: 测试
2-1: 代码:
1) 主模块 1: main.js
1 var counter1 = require("./counter.js"); 2 var counter2 = require("./counter.js"); 3 4 5 console.log(counter1.count()); 6 console.log(counter2.count()); 7 console.log(counter1.count()); 8 console.log(counter2.count());
2) 主模块2: main2.js
1 var counter3 = require("./counter.js"); 2 3 4 // console.log(counter1); //ReferenceError: counter1 is not defined 5 6 console.log(counter3.count());
3)处理程序: counter.js
1 var i = 0; 2 3 function count(){ 4 return ++i; 5 } 6 7 exports.count = count;
2-2: 测试
运行:
----------------------------
分析:
1.运行 主模块 main.js , 依次输出 1, 2 ,3, 4 ; 可见 模块counter.js 到导出 对象 只被 初始化一次.
2.运行 main2.js , 输出 1 ,不是 5 . 这是因为 通过命令行 重新运行 main2.js . 当做重新启动主模块
// console.log(counter1); //ReferenceError: counter1 is not defined
如果取消注释, 这里会报错.
因为 counter1 是在 main.js 中定义的.
3.如果 多次运行 main.js
虽然 没有运行 main2.js , 只是 重复运行 main.js . 但是 输出 不是按照我们的期望 1 2 3 4 , 5 6 7 8 , 9 10 11 12 ,
而是重复的 1 2 3 4 .
这是因为 每次通过 命令行 运行 main.js , 都应该 视作 一个 新的 开始.
三: 参考链接