在Javascript中使用全局变量作为缓存是好的吗?

时间:2015-04-06 14:00:01

标签: javascript caching

我有一个疑问,我在javascript中创建了一些应用程序,但是如果我正在以权利声明全局变量,那就不行了:

var aux;

然后将它们用作我所有函数的缓存:

function something (data) {
aux = 2 * data;
return aux;
}

something2 function () {
aux = something (5);
}

something3 function () {
aux = "something else";
}

我做这样的事情声明变量" aux"并且在许多地方使用它作为缓存,但这很好吗?或者我是否需要为每个使用的函数创建单独的变量?

1 个答案:

答案 0 :(得分:2)

一般来说,您不希望"污染全局命名空间"。它会阻碍性能,并且以后也会导致问题(比如重用该变量名称)。

考虑如何重写代码以不使用全局变量。通常有一种解决方法。您还应该熟悉IIFE的概念 - http://en.wikipedia.org/wiki/Immediately-invoked_function_expression

它的

return aux

虽然你可以做到

return aux = 2 * data

或者如果您不需要将值存储在辅助中,则可以

return 2 * data