这两个requirejs模块之间有什么区别?

时间:2013-02-07 16:49:03

标签: requirejs

很抱歉,如果这似乎是一个奇怪的问题,但我只是开始学习requirejs和一些高级的JavaScript。

这两个模块都有效,所以问题是:有什么不同,为什么我更喜欢第一种/第二种方式?

// First way
define(['handlebars', 'backbone.marionette'], 
    function() {
        console.log(Handlebars, Backbone.Marionette); // Ok
    }
);

// Another way
define(['handlebars', 'backbone.marionette'], 
    function(Handlebars, BackboneMarionette) {
        console.log(Handlebars, BackboneMarionette); // Ok
    }
);

1 个答案:

答案 0 :(得分:1)

define(['handlebars', 'backbone.marionette'], 
    function() {
        console.log(Handlebars, Backbone.Marionette); // Ok
    }
);

这个工作的唯一原因是你已经在窗口命名空间中存在把手和牵线木偶。所以Handlebars,Backbone.Marionette是存在于函数定义之外的全局值。 I.E:

console.log(Handlebars, Backbone.Marionette); // ok
define(['handlebars', 'backbone.marionette'], 
    function() {
        console.log(Handlebars, Backbone.Marionette); // Ok
    }
);