2012-03-23 60 views
0

我瞭解導出如何工作,但是如何在我的主文件中創建一個變量,然後在模塊中使用該變量?我嘗試將我的「全局」變量傳遞給模塊中的函數,但它作爲副本傳遞,而不是通過引用傳遞,因爲它傳遞的數組並不好。在模塊中共享變量node.js

例如

# main file 
var someObject = {}; 

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

即使someObject是它經過複製的對象,並且如果更改其內部function_a或function_b值,它不會在全球範圍內發生變化,或在任何其它模塊,其中我用它。

+0

你能張貼你的所作所爲一些代碼?它應該已經作爲參考。 – fent 2012-03-23 02:53:34

+0

@DeaDEnD編輯! – Macmee 2012-03-23 03:03:59

回答

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); // {} 
+0

謝謝,這工作! – Macmee 2013-07-06 19:14:55