前段时间我听说将代码包装在一个大对象中作为命名空间是一种很好的做法,以减少全局命名空间的混乱并促进库导出,所以我尝试了这个。
var wrapper = {
foo: function(){
return 42;
},
bar: this.foo()
};
它失败了,声称“未定义 foo”。在完成对象声明之前调用方法可能很糟糕,所以我移动了 bar,它起作用了。
var wrapper = {
foo: function(){
return 42;
},
};
wrapper.bar = wrapper.foo();
我觉得这可能会变得有点难看,尤其是对于嵌套的命名空间等,那么是否有任何变通方法不会使一次看到所有包装器的成员变得困难?