Google Analytics sn-p 中的立即调用函数表达式处理该对象的创建。在 sn-p 中,您会看到以下内容:
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}
从传递给 IIFE 的参数中我们知道 i = window 和 r = "ga":
(function(i, s, o, g, r, a, m) {
//...
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
在未修饰的 JavaScript 中,sn-p 如下所示:
window['ga'] = window['ga'] || function() {
( window['ga'].q = window['ga'].q || []).push(arguments)
}
因此,通过调用全局函数ga,您实际上是在创建一个用作队列的数组(如果它尚不存在)并将值推送到队列中。
在 Universal Analytics 中,调用此函数:
ga('create', 'UA-XXXX-Y', 'auto');
和之前版本的GA是一样的:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXX-Y']);
更多信息可以在Google dev docs 中找到。