Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript don';我不知道为什么要使用匿名函数(自调用函数)_Javascript_Jquery - Fatal编程技术网

Javascript don';我不知道为什么要使用匿名函数(自调用函数)

Javascript don';我不知道为什么要使用匿名函数(自调用函数),javascript,jquery,Javascript,Jquery,我不理解匿名函数(或自调用)的好处 因为如果您想操作DOM,您应该在页面加载完成后进行操作,您应该使用匿名函数的$document.ready()intead。 (因为操作DOM需要等待页面准备就绪) 如果您想在加载特定元素后立即执行某些操作, 您可以像这样在该元素之后编写脚本标记 <body> <div>foo</div> <div id="panel">bar</div> <script> $('#

我不理解匿名函数(或自调用)的好处

因为如果您想操作DOM,您应该在页面加载完成后进行操作,您应该使用匿名函数的
$document.ready()
intead。 (因为操作DOM需要等待页面准备就绪)

如果您想在加载特定元素后立即执行某些操作, 您可以像这样在该元素之后编写脚本标记

<body>
<div>foo</div>
<div id="panel">bar</div>
    <script>
       $('#panel').css('background', 'red');
    </script>
<div>some content</div>
</body>

福
酒吧
$('面板').css('背景','红色');
一些内容
那么什么是匿名函数的好处呢?请告诉我谢谢

我不理解匿名函数(或自调用)的好处,因为如果您想操作DOM,应该在页面加载完成后再操作,您应该使用匿名函数的$document.ready()intead。(因为操作DOM需要等待页面准备就绪)

如果您使用的是在DOM就绪时运行的回调,那么不需要再次创建作用域。这是多余的


然而,情况并非总是如此。有时人们不使用事件处理程序来运行初始化代码,所以他们可能会使用IIFE来防止全局变量空间的污染。如果您没有创建任何变量,就像您的简单示例中那样,那么就没有全局污染。

您引用的是什么“匿名函数”?调用
.css()
?您的代码中没有函数。很抱歉,我将其编辑为所有变量都是私有的。了解有关
范围的更多信息
“我不了解匿名函数(或自调用)的好处”,那么如果不需要,为什么要在代码中包含IIFE?全局变量空间在所有脚本之间共享。如果您在脚本中创建了一个全局变量,并且加载了另一个脚本,则它可能会覆盖您的变量。在旧版本的JS中,在函数内部是局部作用于变量的唯一方法。因此,将立即创建并执行一个函数,这样里面的任何
var
声明都会留在里面,而不会变成全局声明。谢谢你让我开心了:)
<body>
<div>foo</div>
<div id="panel">bar</div>
    <script>
       $('#panel').css('background', 'red');
    </script>
<div>some content</div>
</body>