2013-02-07 3 views
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 
    } 
); 

답변

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 
    } 
); 
+0

전혀 차이가 없습니다 ... 맞습니까? – gremo

+1

예 있습니다. 두 번째 예에서 Handlebars는 종속 된 정의에 따라 다릅니다. 첫째로는 그렇지 않습니다. – mpm