2014-01-26 2 views
0

내가 뭘 잘못하고 있긴하지만 아직 멀어지고 있는지 확실하지 않습니다.CoffeeScript에서 생성 된 스크립트에서 클래스 호출

나는 커피 스크립트를 사용하여 클래스를 만들었습니다

# CoffeeScript 
App=  
     Title:"" 
     TopMenu:[] 
     AddTopMenu:(title,count,icon)-> 
      Record= 
       Title:title 
       Icon:icon 
       Count:count          
       AddSubMenu:(title,icon,count) -> 
        Title:title 
        Icon:icon 
        Count:count 

출력 :

(function() { 
    var App; 



    App = { 
    Title: "", 
    TopMenu: [], 
    AddTopMenu: function(title, count, icon) { 
     var Record; 
     return Record = { 
     Title: title, 
     Icon: icon, 
     Count: count, 
     AddSubMenu: function(title, icon, count) { 
      return { 
      Title: title, 
      Icon: icon, 
      Count: count 
      }; 
     } 
     }; 
    } 
    }; 

}).call(this); 

문제는 어떻게 App.Title 또는 App.AddTopMenu를 호출하는 것입니다? 운없이

<script> 
    App.Title="asdasd"; 
</script> 
<script> 
var test = new App(); 
test.Title="asdasd"; 
</script> 

, 응용 프로그램을 찾을 수 없습니다 :

나는 다음과 같은 노력했다.

도움이 될 것입니다. 커피 스크립트에 의해 생성 된 스크립트가 인생에 싸여 있기 때문에이 외부 범위에서 숨겨져 내부 바울이

답변

1

, 아무것도 선언

-이 당신이 노출 것에 대해 매우 구체적으로해야한다는 것을 의미합니다.

기본적으로 스크립트를 실행할 위치에 따라 여러 가지 방법이 있습니다. 브라우저의 경우 window 또는 node.js의 경우 module.exports에 할당하거나 Require.js와 같은 것을 사용하여 종속성 관리를 수행 할 수 있습니다. 그것은 다른 스크립트에서 호출 할 수 있도록 window 객체에 App를 첨부합니다

window.App =  
    Title: "" 
    TopMenu: [] 
    AddTopMenu: (title, count, icon)-> 
     Record = 
      Title: title 
      Icon: icon 
      Count: count          
      AddSubMenu: (title, icon, count) -> 
       Title: title 
       Icon: icon 
       Count: count 

: 브라우저에서이를 사용하려는 것 같습니다 때문에

, 당신은 아마 그런 짓을하고 싶습니다.

+0

또는 모든 정의가 완료되면 window.App에 별도의 지정을 할 수 있습니다. 'window.App = App' –

+0

고맙습니다. 이해해주세요. – user3039902

관련 문제