主干和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";
                    }

                });

第一个有一些缺点:

  • 缩小不可用
  • 定义可以散布在整个代码中,隐藏依赖关系
  • 第二个是可读性更强,可以缩小,但是有很多依赖可以产生很长的行,并且很难追踪依赖项名称和函数输入参数之间的对。

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

    链接地址: http://www.djcxy.com/p/70411.html

    上一篇: Backbone and AMD dependency definitions, parameters vs variables

    下一篇: Relation between CommonJS, AMD and RequireJS?