我正在开发一个很大的Backbone.js应用程序.代码采用模块化结构require.js.现在我看到很多骨干代码和教程这样做:
window.app = ( window.app || {} );
Run Code Online (Sandbox Code Playgroud)
之后,他们会将模型定义和Collection实例分配给该全局对象,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
我喜欢这种方法,因为它简单,不必处理实例化集合的地点和时间.但是,首先将代码require.js分配到一个全局变量(除了全局变量通常是javascript中的错误代码风格)之后,首先将代码分成小位似乎是错误的.
那你对此有何看法,这种方法的优点和缺点是什么?你如何在Backbone中处理你的对象?