我正在研究一个大的Backbone.js应用程序。该代码采用模块化结构,使用require.js
。 现在我看到很多的骨干代码和教程这样做:将变量赋值给Backbone.js中的窗口对象
window.app = (window.app || {});
后,他们将指派模型定义和集合实例到全局对象,像这样:
Task = Backbone.Model.extend({ /*...*/ });
Tasks = Backbone.Collection.extend({ /*...*/ });
window.app.Task = Task;
window.app.Tasks = new Tasks();
// do this with all your models and collections
我喜欢这种方法对于其简单性以及无需处理何时何地实例化集合。但不知怎的,首先使用require.js
将所有代码分配到一个全局变量(除了全局变量通常是javascript中的错误代码风格之外)之后,将代码分离成微小的比特似乎是错误的。
那么你对此有什么看法,这种方法有哪些优缺点?你如何处理Backbone中的对象?
在requirejs中仍然使用'app'变量是否是传统的? –