我发现当有人在PHP中使用全局变量时,人们就会感到害怕。
它们在nodejs中一样糟糕吗?
以下是一个例子:
function my_app(){
// ....
}
my_app.prototype = {
method_1: function(){
// .......
}
}
var my = my_app();
所以my
现在是全球性的。我可以在我定义的其他类中使用它,而不必将它传递给构造函数。我甚至不确定它在javascript中被称为构造函数:|
但这对我来说似乎很自然。它基本上与ppl从函数内部定义的函数访问外部变量的方式相同,对吧?
在PHP中看起来像:
<?php
class my_app{
..............
}
$my = new my_app();
这里$ my必须使用global关键字声明才能在函数或类中使用,但除此之外它是相同的东西
答案 0 :(得分:2)
您的变量在node.js中不是全局变量,它仅对该模块是全局变量。如果要使其对所有模块都是全局的,请将其放在全局命名空间中。
global.my = 'this one is truly global';
你应该明确地避免使用全局变量,就像使用任何其他编程语言一样。