我决定使用本文中定义的命名空间方法:
http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/
使用命名空间进行多级深度是不错的做法?例如,如果我有一个'app'的命名空间,并希望将我的所有组件存储在他们自己的命名空间中,我可能会有'app.components'等等。我可能会更进一步使用'app.components.visual'。
其次,我对构造函数如何适应这种模式感到困惑。您是否只将构造函数放在自执行函数中并引用它:
var test = new app.MyConstructor()
再次,这是一个好习惯吗?
答案 0 :(得分:1)
你可以尽可能深入。例如,这可能很酷:
app.ui.widgets.Clock
这样:
var clock = new app.ui.widgets.Clock('UTC');
如果您认为这很难看,那么为构造函数对象创建一个本地引用:
var Clock = app.ui.widgets.Clock;
var clock1 = Clock('UTC');
var clock2 = Clock('PST');
使用对象创建逻辑命名空间,对相关模块/构造函数/对象/函数进行分组是一个非常好的主意,特别是在更大的代码库中。