均低于警戒这些代码块foo,然后bar.唯一的区别是})()和}()).
代码1:
(function()
{
bar = 'bar';
alert('foo');
})();
alert(bar);
Run Code Online (Sandbox Code Playgroud)
代码2:
(function()
{
bar = 'bar';
alert('foo');
}());
alert(bar);
Run Code Online (Sandbox Code Playgroud)
除了语法之外,还有什么区别吗?
Google Analytics跟踪代码如下所示:
(function() {
code
})();
Run Code Online (Sandbox Code Playgroud)
他们使用这些括号的技术是什么(stuff)()- 被称为?它有什么作用?
我将Google Analytics代码放在我页面上的结束标记之前,然后像这样放置一个if语句(我进一步包含了一个Jquery cookie插件):
<script type="application/javascript">
if ($.cookie('allowcookies') == 'yes') {
analytics code
}
</script>
Run Code Online (Sandbox Code Playgroud)
直到我在代码中使用相同的技术,它才运行:
(function() {if ($.cookie('allowcookies') == 'yes') {
analytics code
}
})();
Run Code Online (Sandbox Code Playgroud)
为什么在我这样做之前没有运行?它为什么要追赶?