我有一个JavaScript全局数组,我在多个函数中使用它。我听说使用全局变量会给性能带来一些麻烦。那么,在这种情况下,有人可以建议我如何避免使用全局变量吗?
var tpaArray = new Array();
在多个函数中,我正在使用并从中弹出值。
[注意]在我的代码中,我实际上使用了多个全局变量和数组
答案 0 :(得分:1)
全局变量不是性能问题。全局变量的问题在于全局命名空间已经非常非常拥挤,因此将符号转储到那里会导致与其他东西冲突的可能性。
几乎总是可以避免使用全局变量。通常的方法是将所有代码包装在作用域函数中:
(function() {
// Your code here
})();
然后你可以在该函数中使用嵌套函数,并在该函数中使用“globals”它们共享。
(function() {
var someVar;
function foo() {
// You can use `someVar` here
}
function bar() {
// And also here
}
foo();
})();
也就是说,最好避免使用大量共享变量或近似全局变量,因为它会使用副作用编写函数,这可能很难维护。
答案 1 :(得分:0)
如果你有很多变量,可以将它们全部放入一个对象中,并将其作为参数传递给每个函数。然后,您无需访问tpaArray
,而是访问data.tpaArray
,其中data
是参数的名称。