2011-03-23 73 views
3

我正在建立一個JavaScript庫,並希望在不污染全局名稱空間的各種依賴(如jQuery,谷歌關閉等)中烘烤。這一點尤其重要,因爲其他人可能已經在使用這些庫的不同版本。避免污染全球命名空間與JavaScript依賴

據我可以告訴大多數這些庫直接連接到window對象,所以我不能簡單地把它們放在一個匿名函數中。

是否有任何通用的解決方案來解決這個問題?

回答

2

我相信你會需要修改源代碼庫,能夠做到這一點,取代他們的代碼:與

window.jQuery = function(){ ... } 

myNamespace.jQuery = function() { ... } 

任何全球jQuery對象的任何引用(和別名)也必須是名稱空間。對每個JS庫都必須採取類似的措施。

在我看來,這對於它的價值來說太麻煩了。爲每個js庫佔用一個全局變量是可以接受的。