2011-09-01 65 views

回答

8

Simply(AFAIK),防止名稱衝突和污染父命名空間。

2

命名空間通常用於避免變量/函數/方法標識符衝突並保持全局名稱空間(如果有的話)清除。

6

德米安在他的回答中碰了頭一聲:命名空間的東西,以避免名稱衝突和範圍污染。

但他們也可以讓你的代碼更容易理解。舉個例子,如果你有兩個功能來顯示和隱藏圖像,他們可以被稱爲showhide,並且存在於任何範圍內。但你也必須在某處顯示和隱藏div,所以showImagehideImage會更好。但是,您可以添加淡入淡出,替換和縮放圖像的方法,並且很快就會有很多…Image函數。把所有這些轉換成名爲Image的名稱空間,它們可以簡單地爲Image.hide,Image.show,Image.zoom等等。代碼變得不言自明,當你編寫代碼時,你不必記得調用…Image,因爲你可以說var Image = {show:…, hide:…, …etc}或類似的。從結構上講,你也可以通過保持相關功能(如你所提到的)來獲得更好的代碼。

我喜歡使用的比喻是,您的電腦桌面就像全局命名空間。你可以不停地把文件放在桌面上,但它很快就會變得雜亂無章,而且你的所有文件都需要非常複雜的名字纔是唯一的。所以相反,你使用文件夾來組織一切。每個人都看到使用文件夾在他們的計算機上組織東西的好處,所以編碼時爲什麼不使用類似的概念呢?

相關問題