现在,我正在使用这种方式:
window.Foo = {
alpha: function() {},
bravo: function(arg) {}
}
window.Bar = {
charlie: function(arg) {}
}
Foo.alpha()
Bar.charlie()
但我怀疑这不是“正确”的做法,因为(1)我的IDE在理解我的意思方面有些困难(例如,如果我输入Foo.
,它无法自动完成函数名称),(2)如果我遍历命名空间并仅返回eachone
的typeof
,我得到的是String
。
for each ... in
是仅适用于 Mozilla 的结构。此外,for (key in window.Foo)
可能会导致key
被声明为全局对象上的属性(在 ES5 严格模式下会导致ReferenceError
),建议改用for (var key in window.Foo)
。 - Christian C. Salvadó