0

抱歉,如果这似乎是一个奇怪的问题,但我刚刚开始学习 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
    }
);
4

1 回答 1

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

这个工作的唯一原因是您已经在窗口命名空间中存在车把和木偶。因此,Handlebars、Backbone.Marionette 是存在于函数定义之外的全局值。IE :

console.log(Handlebars, Backbone.Marionette); // ok
define(['handlebars', 'backbone.marionette'], 
    function() {
        console.log(Handlebars, Backbone.Marionette); // Ok
    }
);
于 2013-02-07T16:58:06.683 回答