在模块node.js中共享变量

时间:2012-03-23 02:46:53

标签: node.js export

我理解导出是如何工作的,但是如何在主文件中创建变量,然后在我的模块中使用该变量?我尝试将我的“全局”变量传递给我的模块中的函数,但是它作为副本传递,而不是通过引用传递,因为它传递的数组我没有用。

例如

# main file
var someObject = {};

var myModule = require('./whatever');
moModule.function_a(someObject);
moModule.function_b(someObject);

即使someObject是一个通过复制传递的对象,如果我在function_a或function_b中更改它的值,它在全局范围内或在我使用它的任何其他模块中都不会改变。

1 个答案:

答案 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); // {}