【发布时间】:2013-01-10 01:52:39
【问题描述】:
我正在玩 Todo MVC 应用程序 http://addyosmani.github.com/todomvc/ 并注意到一些东西,我不确定这是设计完成的(这是必要的)或者它只是随机的。作者似乎对Backbone和js颇有经验,在声明Router(var Workspace)和Collection(var TodoList)时使用'var',然后在实例化时将它们带入app命名空间,例如,
app.TodoRouter = new Workspace();
但是,例如,当他声明视图时,他不使用 var,而是直接使用命名空间。他也对模型执行此操作。例如,
app.TodoView = Backbone.View.extend({
});
无需检查所有代码,是否有更高层次的原因导致我遗漏了该决定,还是只是任意的
代码
查看
app.TodoView = Backbone.View.extend({
});
路由器
var Workspace = Backbone.Router.extend({
});
app.TodoRouter = new Workspace();
收藏
var TodoList = Backbone.Collection.extend({
});
// Create our global collection of **Todos**.
app.Todos = new TodoList();
【问题讨论】:
-
我认为您看到了一种奇怪的命名实践(实例和“类”/原型的大写相同)和合理信息隐藏的组合。路由器实例
app.TodoRouter可能在其他地方需要,但“类”Workspace不是,所以你看到var Workspace将其隐藏在本地范围内;app.TodoView可能在其他地方需要,因此它可以在全球范围内访问。 “个人偏好”可能是最接近您得到答案的内容。
标签: backbone.js