簡體   English   中英

從CoffeeScript生成的腳本中調用類

[英]Calling class from script generated from CoffeeScript

不知道我在這里做錯了什么,但還不算太遠。

我使用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>

沒有運氣,找不到應用程序。

任何幫助都會很棒。

保羅

由於CoffeeScript生成的腳本包裝在IIFE中,因此在其中聲明的所有內容都不會在外部作用域中隱藏-這意味着您需要非常明確地公開自己的內​​容。

您可以通過多種方式來執行此操作,這基本上取決於腳本將在何處運行。 您可以將其分配給瀏覽器的window ,或者module.exports給node.js的module.exports ,或者使用Require.js之類的東西來進行依賴管理。

由於看起來您將在瀏覽器中使用它,因此您可能需要執行以下操作:

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

它將App附加到window對象,以便可以從其他腳本中調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM