我想使用CoffeeScript为Google Apps Script编写Javascript脚本,但我在生成预期格式的函数时遇到问题。如何在coffeescript中为Google Apps脚本生成全局命名的javascript函数
Google Apps脚本希望脚本包含顶级命名函数。 (我可能是使用了错误的术语,所以我会说明我的意思举例...)
例如,该功能通过愉快谷歌Apps脚本承认:
function triggerableFunction() {
// ...
}
...而这个功能是不是(它将解析,但你会不会将无法触发它):
var nonTriggerableFunction;
nonTriggerableFunction = function() {
// ...
};
我发现有CoffeeScript的,我能够获得最接近的是nonTriggerableFunction
以上表格。生成上述triggerableFunction
这样的命名函数的最佳方法是什么?
我已经在使用'裸'选项(-b
开关),编译 没有顶级功能安全包装。
我在Web上发现的一个项目,结合了CoffeeScript和Google App Script,它是Gmail GTD Bot,它似乎是通过使用back-ticks的组合来做到这一点,并要求用户手动从结果中删除一些行码。 (请参阅script的末尾,以及README的“安装”部分)。我希望有一个更简单更清洁的解决方案。
这似乎并没有生成全局命名函数。这是它产生,使用-b开关时: (函数(){ 返回this.triggerableFunction =(函数(){ 功能triggerableFunction(ARG1,ARG2){} 返回triggerableFunction; } )(); })(); – mattbh 2012-01-30 22:22:20
您是否在浏览器中运行代码?该函数是全局的,因为它附着在全局上下文中。它被命名为:'triggerableFunction.name ===“triggerableFunction”'。当然,它不会生成函数声明,但我相信这不是问题所在。 – Adrien 2012-01-31 09:36:25
代码在Google Apps脚本引擎中运行,而不是在浏览器中运行。我的确在问如何生成Google Apps脚本引擎似乎需要的函数声明。 'gmail-gtd-bot'使用的解决方法(使用back-ticks)为我工作。 – mattbh 2012-04-03 22:32:11