0

我一直在开发一个带有不同模块的 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";
                    }

                });
4

1 回答 1

0

第一个有一些缺点:

  • 缩小不可用
  • 定义可以分散在整个代码中,隐藏依赖关系

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

所以如果你需要缩小选择第二个,如果不需要,选择第一个。

于 2013-09-02T17:11:49.220 回答