gpt4 book ai didi

javascript - Google 分析跟踪代码使用什么技术?

转载 作者:行者123 更新时间:2023-12-02 23:00:30 26 4
gpt4 key购买 nike

Google Analytics 跟踪代码如下所示:

(function() {
code
})();

他们使用这些括号 - (stuff)() - 调用了什么技术?它有什么作用?

我将 Google Analytics 代码放在页面的结束 head 标记之前,然后在其周围放置一个 if 语句,如下所示(我在上面包含了一个 Jquery cookie 插件):

<script type="application/javascript">
if ($.cookie('allowcookies') == 'yes') {
analytics code
}
</script>

直到我在代码中使用相同的技术后它才运行:

(function() {if ($.cookie('allowcookies') == 'yes') {

analytics code
}
})();

为什么在我这样做之前它没有运行?为什么它跑了?

最佳答案

(function() {
/* code */
}());

它通常被称为“自执行匿名函数 (1)”(即“立即函数调用”),其主要用途是避免在全局(或外部)作用域中创建变量。

当您想要创建一个只执行一次的函数时,它也可以用作快捷方式,而无需首先使用自己的标识符定义该函数,然后立即调用该函数。

它最终可能会在作用域内使用,然后如果外部上下文(或其他引用)通过参数传递绑定(bind),则它可能会创建一个闭包,例如

/* outer scope */  
(function(outerscope) {

element.onsomeevent = function() {
/* do something with outerscope */
};

}(this));

我使用此表达式进行的另一个实际用途是,当我需要创建一个函数,以便在使用 new 关键字调用时在构造函数内快速执行该函数时(而不是显式调用某些 init方法)。

<小时/>

(1) — 如 Nicholas Zakas 所著的《Mantainable Javascript》一书(O'Reilly,ISBN 978-1-449-32768-2)第 44 页所述,建议的表达式是 (function() {}()),带有嵌套括号(即使 (function() {})() 仍然可以工作)

[...]To make it obvious that immediate function invocation is taking place, put paretheses around the function[...]

另请参阅Immediate function invocation syntax

关于javascript - Google 分析跟踪代码使用什么技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259694/

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