全局变量的常量函数?

时间:2017-06-02 19:46:35

标签: javascript

全局变量很糟糕,希望我们几乎都同意这一点。但全球职能是否只会让一件事变得不那么糟糕?

var foo = 42; // this is bad
function foo() { return 42; } // less bad?

我觉得我不能成为第一个想到这样做的人,但我很难想到这些缺点。

2 个答案:

答案 0 :(得分:3)

你仍然有一个全局变量(它是一个变量,而不是一个常量),唯一的区别是该变量的值是一个函数。

没有任何好处,只要你想获得值,你就有了调用函数的开销。

如果你想要一个常数,那就用一个常数。

while(true) { //infinite loop 
}

这仍然具有成为全局的缺点,你仍然应该在尽可能狭窄的范围内定义你的变量和常量。

答案 1 :(得分:1)

使用全局变量(函数或变量)的主要缺点是它们的名称可能会与您在应用程序中使用的其他库或框架一起崩溃。 它们还会对代码可重用性和代码分发产生负面影响。 由于这些原因,您应该避免使用全局变量。相反,你应该将这些全局变量封装在某个命名空间中,你应该尽力使命名空间名称足够独特,这样它就不会与任何库或框架冲突。