nodejs 中的全局变量

Globals in nodejs

我看到有人在 PHP.

中使用全局变量时吓坏了

它们在 nodejs 中是否同样糟糕?

这是一个例子:

function my_app(){
    // ....
}    

my_app.prototype = {
  method_1: function(){
      // .......
  }
}

var my = my_app();

所以 my 现在是全球性的。我可以在下面定义的其他 类 中使用它,而不必将它传递给构造函数。我什至不确定它在 javascript 中被称为构造函数:|

但这对我来说似乎很自然。这与人们从函数内部定义的函数访问外部变量的方式基本相同,对吧?

在 PHP 中看起来像:

<?php

class my_app{
..............
}

$my = new my_app();

这里 $my 必须用全局关键字声明才能在函数或 类 中使用,但除此之外是一样的

您的变量在 node.js 中不是全局的,它只对那个模块是全局的。如果你想让它对所有模块都是全局的,把它放在全局命名空间中。

global.my = 'this one is truly global';

你应该明确地避免使用全局变量,就像在任何其他编程语言中一样。