gpt4 book ai didi

google-analytics - 将 Google 新的通用跟踪代码转换为 Coffeescript

转载 作者:行者123 更新时间:2023-12-02 13:50:02 25 4
gpt4 key购买 nike

我正在尝试将 Google 的新分析 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');

翻译后的 CoffeeScript

((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_未定义。这是有道理的,因为那不是变量名。但不知道如何手动翻译它——JS 中的所有逗号都让我感到困惑。

最佳答案

这只是一个comma operator :

Summary

The comma operator evaluates both of its operands (from left to right) and returns the value of the second operand.
[...]
Description

You can use the comma operator when you want to include multiple expressions in a location that requires a single expression. The most common usage of this operator is to supply multiple parameters in a for loop.

这是逗号运算符的奇怪用法,但您必须记住,您正在查看的 JavaScript 可能已被一两个预处理器破坏,因此它不适合人类使用。逗号运算符通常只用在 for 循环中,有时也用在 return 中,当有人想耍小聪明时。

在将 JavaScript 翻译为 CoffeeScript 时,您可以安全地将逗号替换为分号。或者将 JavaScript 保留为 JavaScript,因为:

  1. 它不适合您编辑或维护。
  2. 无论如何,最终都是 JavaScript。

关于google-analytics - 将 Google 新的通用跟踪代码转换为 Coffeescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com