Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干和AMD依赖项定义、参数与变量_Javascript_Backbone.js_Requirejs_Amd - Fatal编程技术网

Javascript 主干和AMD依赖项定义、参数与变量

Javascript 主干和AMD依赖项定义、参数与变量,javascript,backbone.js,requirejs,amd,Javascript,Backbone.js,Requirejs,Amd,我一直在开发一个带有不同模块的主干应用程序,随着它现在变得越来越大,我希望用AMD模式和RequireJS来组织它 我一直在看关于如何实现这一点的不同教程和文章,我看到了两种不同的方法来定义依赖项,我想知道:这两个模块定义之间有什么主要区别吗?我个人认为第二种方法在涉及大量定义时更为简洁 define(function (require) { "use strict"; var $ = require('jquery'),

我一直在开发一个带有不同模块的主干应用程序,随着它现在变得越来越大,我希望用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";
                    }

                });