关于 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 函数每次返回的都是一个新的对象
坚持下去就能成功