我有關於the node.js documentation on module caching一個問題:瞭解Node.js模塊:多個需要返回相同的對象?
模塊是他們第一次加載後緩存。這意味着 (其中包括)每次調用require('foo')將返回 完全相同的對象(如果它將解析爲相同的 文件)。
多次調用require('foo')可能不會導致模塊代碼爲 多次執行。這是一個重要的功能。通過它,可以返回 「部分完成」的對象,從而允許即使在它們會導致循環時也加載依附關係。
什麼意思是may
?
我想知道是否需要總是返回相同的對象。所以,如果我需要一個模塊在app.js
一個,改變內app.js
出口對象(需要回報的),之後需要一個模塊乙在app.js
本身需要模塊一個,將我總是獲取該對象的修改版本,還是新的?
// app.js
var a = require('./a');
a.b = 2;
console.log(a.b); //2
var b = require('./b');
console.log(b.b); //2
// a.js
exports.a = 1;
// b.js
module.exports = require('./a');
在文檔中的這句話本來可以寫得更好。在我看來,*可能不*與*不允許*相同,即多次調用require('foo')**不能**導致模塊代碼被多次執行*。 – 2014-07-23 02:38:23