我正在尝试将谷歌的新分析 API 与使用 Coffeescript 模块的应用程序集成。我想将他们的代码转换为 Coffeescript,但从 js2coffee.org 的自动转换失败。我正在尝试手动重写,但有一个逗号我不明白。原始JS代码:
( function (i,s,o,g,r,a,m){
i['GoogleAnalyticsObject']=r;
i[r]=i[r] || function(){
(i[r].q=i[r].q||[]).push(arguments)
}, // --------------------------------------- What is this comma?
i[r].l=1*new Date();
a=s.createElement(o),
m=s.getElementsByTagName(o)[0];
a.async=1;
a.src=g;
m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
翻译咖啡脚本
((i, s, o, g, r, a, m) ->
i["GoogleAnalyticsObject"] = r
i[r] = i[r] or ->
(i[r].q = i[r].q or []).push arguments_
i[r].l = 1 * new Date()
a = s.createElement(o)
m = s.getElementsByTagName(o)[0]
a.async = 1
a.src = g
m.parentNode.insertBefore a, m
) window, document, "script", "//www.google-analytics.com/analytics.js", "ga"
抛出错误arguments_ is not defined
。这是有道理的,因为那不是变量名。不知道如何手动翻译这个——JS 中的所有逗号都让我失望。