2011-10-05 52 views
1

我是新來的JavaScript,從我讀什麼全局變量是不好的做法,因爲它們污染了全局命名空間。我經常遇到的 問題之一是變量範圍。我讀的地方,要解決這兩個問題的一個方法是創建一個空的對象:封裝全局JavaScript良好實踐?

allvars = {} 

然後堅持我原本設置爲全局的變量,因爲這個對象內部的屬性:

allvars.animal = 'bear'; 
allvars.sliderSpeed = 1000; 

到目前爲止,這似乎是一個好主意給我,因爲我現在可以訪問我的變量的任何地方,無論範圍,也因爲所有瓦爾此 對象的內部,他們不是全局性的。

那麼,有沒有缺點做事的這種方式?有沒有更好的辦法?

回答

1

如果這些變量真的需要在全局範圍內並且無處不在,那麼這是這樣做的首選方式,因爲它只將全局變量allvars引入到全局名稱空間中。如果我是你,我會讓這個全球名稱更加獨特,所以它不太可能與其他任何東西發生衝突。但是,除此之外,你在正確的軌道上。

當一個人真正進入面向對象編程,有往往是東西越來越少,真正需要是全球性的,你可以大部分的狀態存儲在相關的(非全局)的對象有訪問它們。顯然,在這種情況下我們不知道你的應用程序,所以我們不能真正評論這些設置是否需要全局性。