2012-03-20 67 views
0

我總是在網上看到全局變量是壞的,我明白它們是壞的,因爲每個函數都可以訪問它們,並且如果應用程序中的每個函數都修改全局變量在大型應用程序中,在代碼中的特定點處跟蹤此變量的狀態可能變得非常困難。全局變量javascript,java,php,all languages

但我的問題是,如果我有一個變量,每個函數都需要使用反正,是不是更好地宣佈它是全球?而不必每次都在每個函數內實例化我的變量?

另外,什麼時候應該使用全局變量而不是局部變量?

+0

GV的主要問題是一旦您使用或不使用天氣,它會不必要地保留內存。 – 2012-03-20 12:23:05

+0

如果全局變量適合您的情況,請使用它們。如果你喜歡,你可以使它們成爲「命名空間」對象的屬性,但有些更喜歡這種方法,因爲它方便而整潔,但全局(內存使用,性能等)本質上沒有任何錯誤。如果與不同的團隊或貢獻者一起開展大型開發,他們可能難以管理。 – RobG 2012-03-20 12:58:19

回答

0

每個變量都代表一些真實或可想象的實體。如果您確定該實體是唯一的,那麼可以爲它設置靜態變量。例如,屏幕/鍵盤/鼠標設備用類型爲java.awt.Toolkit的靜態變量(可通過getter訪問)表示。 但這種情況很少見。通常,程序員會考慮實體的單個實例,併爲其聲明一個靜態變量,然後出現對另一個類似實體的需求,這會以費力重構結束。

0

這是關於代碼運行時的內存使用情況。 在代碼運行時,您總是嘗試將更少的對象數量保存到內存中。對象的範圍更小(方法範圍),您的對象在內存中的活性會更少,因此內存利用率更高。所以需要保持變量的範圍更小,因爲它是必要的。 但是你的語句對於全局變量並不完全正確,因爲在java中我們有訪問修飾符(public,private,default等),並且如果任何全局變量(類變量)具有私有修飾符,那麼它不能在類之外修改。