关于 require的缓存
有两个文件
a.js内容如下:
1 var add = require("./t.js").add; 2 3 var add2 = require("./t.js").add; 4 console.log(add()) 5 console.log(add()) 6 console.log(add2())
t.js内容如下:
1 var a = 10; 2 module.exports.add = function(){ 3 return ++a; 4 }
node a.js
打印结果为:

在html中嵌入一段js
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var foo = function(){
var a =1;
return function(){
return ++a;
}
}
var a1 = foo();
var a2 = foo();
console.log(a1());
console.log(a1());
console.log(a2())
</script>
</body>
</html>
打印结果如下:

事实证明
nodejs的require 缓存了函数中的 变量值,第二次require时 并未重新加载;
而 原生js 函数每次返回的都是一个新的对象
坚持下去就能成功

浙公网安备 33010602011771号