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