現在,我使用這種方式:如何在Javascript中創建名稱空間靜態函數?
window.Foo = {
alpha: function() {},
bravo: function(arg) {}
}
window.Bar = {
charlie: function(arg) {}
}
Foo.alpha()
Bar.charlie()
但我懷疑,這是不是「正確」的方式來做事,因爲(1)我的IDE理解我的意思在幾個方面扼流圈起來(例如,如果我鍵入Foo.
,將不會自動完成函數名稱);(2)如果我遍歷命名空間,並且返回typeof eachone
,則得到String
。
請注意,「對於每個... in」是僅限Mozilla的構造。另外'for(key in window.Foo)'可能會導致'key'被聲明爲全局對象的屬性(並且在嚴格模式下的ES5中將導致'ReferenceError'),'for(var key in window.Foo )'建議。 – CMS 2010-08-18 14:41:46