Mam pytanie związane z dokumentacją node.js dotyczącą buforowania modułów :
Moduły są buforowane po pierwszym załadowaniu. Oznacza to (między innymi), że każde wywołanie require ('foo') zwróci dokładnie ten sam obiekt , jeśli miałoby dojść do tego samego pliku.
Wielokrotne wywołania require („foo”) mogą nie powodować wielokrotnego wykonywania kodu modułu. To ważna cecha. Dzięki niemu można zwrócić obiekty „częściowo wykonane”, co pozwala na ładowanie zależności przechodnich, nawet jeśli powodowałyby cykle.
Co to znaczy may?
Chcę wiedzieć, czy require zawsze zwróci ten sam obiekt. Tak więc w przypadku I wymagają modułu A w app.jsi zmienić przedmiot wywozu w app.js(tej, która wymaga zwrotu), a potem wymaga modułu B w app.jsktóry sam wymaga modułu A , będę zawsze uzyskać zmodyfikowaną wersję tego obiektu lub nowy jeden?
// 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');