Javascript 使用Google Analytics和Facebook Pixel关闭编译器警告

Javascript 使用Google Analytics和Facebook Pixel关闭编译器警告,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我有一个函数如下所示: function StartThirdPartyScripts() { (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.

我有一个函数如下所示:

function StartThirdPartyScripts() {

    (function (i, s, o, g, r, a, m) {
        i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
            (i[r].q = i[r].q || []).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');

    ga('create', 'UA-XXXXXXXXX-1', 'auto');
    ga('send', 'pageview');

    !function (f, b, e, v, n, t, s) {
        if (f.fbq) return; n = f.fbq = function () {
            n.callMethod ?
            n.callMethod.apply(n, arguments) : n.queue.push(arguments)
        }; if (!f._fbq) f._fbq = n;
        n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0;
        t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s)
    }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');

    fbq('init', 'XXXXXXXXXXXXXXXXXXXX');
    fbq('track', 'PageView');
}
问题是,当我在闭包编译器高级模式下运行此程序时,我收到了3条警告,因为参数的数量不匹配。以下是警告:

        WARNING - Function function: called with 5 argument(s). 
        Function requires at least 7 argument(s) and no more than 7 argument(s).
        (function (i, s, o, g, r, a, m) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     ClosureCompiler/initialjxaz.js:512: WARNING - Suspicious code. The result of 
        the 'not' operator is not being used. !function (f, b, e, v, n, t, s) { 
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ClosureCompiler/initialjxaz.js:512: 
        WARNING - Function function: called with 4 argument(s). Function requires at 
least 7 argument(s) and no more than 7 argument(s). 
        !function (f, b, e, v, n, t, s) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ^^^^ 0 error(s), 3 warning(s)

我能做些什么来修复它?

您可以放心地忽略这些警告。代码中有未使用的额外函数参数,因此闭包编译器发出警告。如果参数被标记为可选或具有默认值,则编译器不会发出警告


我也不知道他们为什么使用
该函数前面的运算符。看起来他们正在使用它来防止连接的文件没有分号,但我希望他们使用

您能显示警告吗?而且,这看起来像是最小化的代码,这真的是源代码吗?您使用什么设置进行编译?包括正在使用的外部程序。目前,我的JS代码是44K行,编译时没有任何警告;花了很多时间让一切都完美运转。我刚刚添加了Google和FB脚本,现在出现了警告。我可以删除额外的参数吗?在调用站点显式传递
undefined
更安全。这会删除警告吗?是。调用参数的数量需要与函数参数的数量匹配。好的,我将在我的代码中尝试,并让您知道。谢谢,你帮了我好几次。