Javascript中用全局变量做缓存好不好?

It is good to use global variables as cache in Javascript?

我有疑问,我正在 javascript 中创建一些应用程序,但如果我正确地声明全局变量则不会,例如:

var aux;

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

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

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

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

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

一般来说,你不想"contaminate the global namespace"。它会影响性能,并且还会在以后导致问题(比如是否重用该变量名)。

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

return aux

虽然你可以做到

return aux = 2 * data

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

return 2 * data