写一个模块 test01.js
var aa=0;
exports.add=function(){
return ++aa;
}
exports.jian=function(){
return --aa;
}
exports.aa=aa;
写另一个js文件: test02.js
var bb01=require("./test01")
console.log(bb01.add()); // 1
console.log(bb01.add()); // 2
console.log(bb01.aa); // 0
console.log(bb01.jian()); // 1
console.log(bb01.jian()); // 0
console.log(bb01.aa); // 0
由此可以发现,共用一个aa,而这个就联想到闭包
为了证明这点,我写了一个闭包,实现上面打印效果
var obj = {};
function bi(obj) {
var mm = 15;
function add() {
return ++mm;
}
function jian() {
return --mm;
}
obj.add = add;
obj.jian = jian;
return obj;
}
var zz = bi(obj);
console.log(zz.add()); //16
console.log(zz.add()); //17
console.log(zz.jian()); //16
console.log(zz.jian()); //15
FR:徐海涛(hunk Xu)
QQ技术交流群:386476712