más fácil de explicar con código:Módulos de nodo: ¿exportar una variable frente a las funciones de exportación que hacen referencia a ella?
##### module.js
var count, incCount, setCount, showCount;
count = 0;
showCount = function() {
return console.log(count);
};
incCount = function() {
return count++;
};
setCount = function(c) {
return count = c;
};
exports.showCount = showCount;
exports.incCount = incCount;
exports.setCount = setCount;
exports.count = count; // let's also export the count variable itself
#### test.js
var m;
m = require("./module.js");
m.setCount(10);
m.showCount(); // outputs 10
m.incCount();
m.showCount(); // outputs 11
console.log(m.count); // outputs 0
Las funciones exportadas funcionan como se esperaba. Pero no me queda claro por qué m.count no es también 11.
¡No todo es pasar por valor! Las funciones y los objetos siempre se pasan por referencia. – zetlen
@zetlen no se pasan por valor. El valor que están pasando es una referencia a un objeto. Pase por referencia son punteros. No tenemos punteros – Raynos