Node.js全局变量不工作

Node.js全局变量不工作,node.js,Node.js,我想在我的项目中使用全局变量,但它们不起作用,我不明白它们为什么不起作用。我试图用以下方式使用它们: global.connection=null; function create_connection(connection) { connection=12345; } create_connection(global.connection); console.log(global.connection); // returns null, why doesn't it return

我想在我的项目中使用全局变量,但它们不起作用,我不明白它们为什么不起作用。我试图用以下方式使用它们:

global.connection=null;
function create_connection(connection) {
    connection=12345;
}
create_connection(global.connection);

console.log(global.connection); // returns null, why doesn't it return 12345?

Javascript总是按值传递变量。因此,在本例中,您可以更改字符串值,而不保留对
global
对象的引用

你本来可以这样做的

函数创建_连接(全局){
全局连接=12345;
}

创建_连接(全局)不是所有变量,而是标量类型。对象是通过引用传递的。javascript中没有通过引用,当你传递一个对象时,你传递了引用,但严格地说,你仍然传递了值,这是对象引用的副本,这不同于C/C++中的通过引用传递。这不是对你的问题的回答,而是一条建议:不要使用全局变量。相反,您可以编写一个文件(模块)来导出连接本身,并且您可以在其他模块中需要它。否则,您将始终必须确保调用create_connection一次,这可能会导致严重的错误。