Ich habe eine Frage zur Dokumentation von node.j zum Modul-Caching :
Module werden nach dem ersten Laden zwischengespeichert. Dies bedeutet (unter anderem), dass bei jedem Aufruf ('foo') genau dasselbe Objekt zurückgegeben wird, wenn es in dieselbe Datei aufgelöst wird.
Bei mehreren erforderlichen Anrufen ('foo') wird der Modulcode möglicherweise nicht mehrmals ausgeführt. Dies ist ein wichtiges Merkmal. Damit können "teilweise erledigte" Objekte zurückgegeben werden, so dass transitive Abhängigkeiten geladen werden können, selbst wenn sie Zyklen verursachen würden.
Womit ist gemeint may
?
Ich möchte wissen, ob bei Bedarf immer das gleiche Objekt zurückgegeben wird. Also, falls ich ein Modul benötigen A in app.js
und die Exporte Objekt ändern innerhalb app.js
(die, die Rückkehr erfordert) und danach benötigen ein Modul B in app.js
das selbst Modul benötigt A , werde ich immer bekommen die modifizierte Version des Objekts, oder einen neuen einer?
// 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');