2015-04-06 80 views
0

我有一個疑問,我創建在JavaScript一些應用,但如果我做聲明全局變量,例如右:在Javascript中使用全局變量作爲緩存很好嗎?

var aux; 

然後用這些作爲我的所有功能緩存:

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

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

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

我做這樣的事情聲明變量「AUX」,並把它作爲在許多地方高速緩存,但是這是件好事,還是我需要爲每個函數,其中使用創建單獨的變量?

+0

全局緩存的變量實際上減慢腳本執行速度,並使用全局變量一般來說,riables被認爲是不好的做法。因此只需使用局部變量。 – Teemu 2015-04-06 14:04:43

回答

2

一般來說,你不想「污染全局命名空間」。它阻礙了性能,並且也可能在以後導致問題(例如,如果該變量名稱被重用)。

想想如何重寫代碼以不使用全局變量。通常有一個方法。你也應該熟悉IIFE的概念 - http://en.wikipedia.org/wiki/Immediately-invoked_function_expression

這是

return aux 

雖然你可能只是做

return aux = 2 * data 

,或者如果你並不需要保存在輔助價值你可以只是

return 2 * data