在JavaScript中使用深度命名空间是否可以

时间:2012-01-11 09:43:49

标签: javascript

我决定使用本文中定义的命名空间方法:

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() 

再次,这是一个好习惯吗?

1 个答案:

答案 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');

使用对象创建逻辑命名空间,对相关模块/构造函数/对象/函数进行分组是一个非常好的主意,特别是在更大的代码库中。