Совместное использование переменных в модулях node.js - PullRequest
0 голосов
/ 23 марта 2012

Я понимаю, как работает экспорт, но как я могу создать переменную в моем главном файле, а затем использовать эту переменную в моем модуле?Я попытался передать свою «глобальную» переменную в функцию в моем модуле, но она была передана в виде копии, а не по ссылке, и, поскольку я передаю массив, это бесполезно.

Например

# main file
var someObject = {};

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

Несмотря на то, что someObject является объектом, который он передает путем копирования, и если я изменю его значение внутри function_a или function_b, он не изменится ни в глобальной области видимости, ни в любых других модулях, в которых я его использую.

1 Ответ

3 голосов
/ 23 марта 2012

Если вы измените переданный аргумент, аргумент изменится за пределами функции.

Однако то, что вы, вероятно, делаете, заставляя вас думать, что объект копируется, - это переназначение переменной.

Что делать:

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); // {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...