0

これが奇妙な質問のように思われる場合は申し訳ありませんが、requirejsといくつかの高度なjavascriptを学び始めたところです。

これらのモジュールは両方とも機能するので、質問は次のとおりです。違いは何ですか。また、なぜ1番目と2番目の方法を優先する必要があるのでしょうか。

// 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 に答える