不确定我在这里做错了什么但没有走远。
我使用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>
没有运气,找不到App。
任何帮助都会很棒。
保
答案 0 :(得分:1)
因为CoffeeScript生成的脚本包含在IIFE中,所以在其中声明的任何内容都隐藏在外部范围内 - 这意味着您需要非常具体地了解您所暴露的内容。
您可以通过多种方式执行此操作,这主要取决于脚本的运行位置。您可以将其分配给浏览器的window
,或者将module.exports
分配给node.js,或使用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
对象,以便可以从其他脚本调用它。