请解释requirejs模块

时间:2014-03-02 05:45:05

标签: javascript backbone.js requirejs

在Sulc D.的“使用RequireJS和Marionette Modules构建骨干代码”一书中,有一个代码:  define(["app", "apps/config/storage/localstorage"], function(ContactManager){ ContactManager.module("Entities", function(Entities, ContactManager, Backbone, Marionette, $, _){ Entities.Contact = Backbone.Model.extend({ urlRoot: "contacts", .....

ContactManage是一个骨干.Marionette app实例

var ContactManager = new Marionette.Application();
  1. 我从requirejs文档中知道,我们应该在[“app”,“ContactManager”...]中定义依赖关系并在函数中传递App和ContactManager(App,ContactManager ...),但在上面的代码ContactManager传递给函数,但它没有被定义为依赖项。为什么会这样?

  2. 请解释一下这段代码的作用:

    ContactManager.module(“实体”,功能(实体,ContactManager,Backbone,Marionette,$,_){

  3. 我们为什么要创建requirejs模块? 感谢!!!

    完整代码:https://github.com/davidsulc/structuring-backbone-with-requirejs-and-marionette/blob/master/assets/js/entities/contact.js

    代码在guthub中可用 https://github.com/davidsulc/structuring-backbone-with-requirejs-and-marionette

1 个答案:

答案 0 :(得分:0)

  1. 自" app"是第一个声明的依赖项,它将是传递给函数的第一个参数。在上面的代码中,函数的第一个参数是' ContactManager'。因此,ContactManager是该功能范围的应用程序。

  2. 模块声明行创建一个名为' Entities'的新模块。在该声明的范围之外,该模块可以作为ContactManager.Entities引用。这本书很好地解释了为什么模块有用。最值得注意的是,它们可以根据需要停止和启动,尽可能释放内存。