我理解导出是如何工作的,但是如何在主文件中创建变量,然后在我的模块中使用该变量?我尝试将我的“全局”变量传递给我的模块中的函数,但是它作为副本传递,而不是通过引用传递,因为它传递的数组我没有用。
例如
# main file
var someObject = {};
var myModule = require('./whatever');
moModule.function_a(someObject);
moModule.function_b(someObject);
即使someObject是一个通过复制传递的对象,如果我在function_a或function_b中更改它的值,它在全局范围内或在我使用它的任何其他模块中都不会改变。
答案 0 :(得分:3)
如果修改传递的参数,则参数将在函数外部更改。
然而,你可能正在做的就是让你认为对象被复制是你重新分配变量。
你应该做什么:
function foo(a) {
a.bar = 42;
}
var o = {};
foo(o);
console.log(o); // { bar: 42 }
什么不该做:
function foo(a) {
a = { bar: 42 };
}
var o = {};
foo(o);
console.log(o); // {}