骨干和AMD依赖关系定义,参数与变量

时间:2013-09-02 14:45:58

标签: javascript backbone.js requirejs amd

我一直在开发一个具有不同模块的Backbone应用程序,并且随着它现在变大,我希望用AMD模式和RequireJS来组织它。

我一直在寻找有关如何解决此问题的不同教程和文章,我已经看到了几种不同的方法来定义依赖关系,并且想知道:这两个模块定义之间是否存在任何重大差异,我个人当涉及大量定义时,第二个是否更整洁?

define(function (require) {
           "use strict";

            var $           = require('jquery'),
                Backbone    = require('backbone'),
                Module1      = require('Module1'), 

                Employee = Backbone.Model.extend({

                    urlRoot: "/employees",

                    initialize: function () {
                        this.reports = new EmployeeCollection();
                        this.reports.url = this.urlRoot + "/" + this.id + "/reports";
                    }

                });

define(['jquery', 'backbone', 'Module1'], function (jQuery, Backbone, Module1) {

           "use strict";

            var Employee = Backbone.Model.extend({

                    urlRoot: "/employees",

                    initialize: function () {
                        this.reports = new EmployeeCollection();
                        this.reports.url = this.urlRoot + "/" + this.id + "/reports";
                    }

                });

1 个答案:

答案 0 :(得分:0)

第一个有一些缺点:

  • 缩小功能
  • 定义可以分散在整个过程中 代码,隐藏依赖项

第二个更具可读性并且可以缩小,但是有许多依赖项会产生非常长的行,并且难以在依赖项名称和函数输入参数之间跟踪对。

因此,如果您需要缩小选择第二个,如果不需要,请选择第一个。