Tener un módulo tan simple ( exportaciones.js ):
module.exports.val1 = "boz"; exports.val2 = "bar"; module.exports.fun1 = function Something() { console.log("bla bla"); }; exports.fun2 = function Something() { console.log("bla bla"); }; exports = "abc"; //1 module = "def" //2 console.log(module); console.log(exports);y el archivo que lo importa ( index.js ):
var imp = require("./exports") console.log(imp)me sale en la salida:
def abc {val1: "boz", val2: "bar", fun1: ƒ Something(), fun2: ƒ Something()}¿Cómo se puede acceder/definir las importaciones en el archivo de índice ya que se sobrescribe en el n.º 1 y n.º 2 en el archivo del módulo en sí (qué se puede observar al obtener estas 2 cadenas de los registros del módulo)?
Creo que es lo mismo que si llamaras a una función con un objeto. La función obtiene una copia de la referencia al objeto y, por lo tanto, puede manipular el objeto, todo lo que hace la reasignación es hacer que la copia local de la referencia en la función apunte a otro lugar.
function caller() { var obj = {} callMe(obj); obj.name; // "Hello" } function callMe(obj) { obj.name = "Hello"; obj = {}; }Tenga en cuenta que el objeto que pasa la persona que llama no se ve afectado por la reasignación en "llámame". Ver "pasar por valor".