Javascript jQuery document.ready vs自调用匿名函数
这两者的区别是什么Javascript jQuery document.ready vs自调用匿名函数,javascript,jquery,Javascript,Jquery,这两者的区别是什么 $(document).ready(函数(){…}) (函数(){…})() 这两个函数是否同时调用? 我知道,当浏览器呈现整个HTML页面时,document.ready将被触发,但是第二个函数(自调用匿名函数)呢。它是等待浏览器完成呈现页面还是在遇到页面时调用它?document.ready在“构造”DOM后运行。如果在构建DOM之前插入到,则自调用函数会立即运行。(function(){…})()将在Javascript中遇到时立即执行 加载文档后将执行$(docume
$(document).ready(函数(){…})代码>
(函数(){…})()代码>
我知道,当浏览器呈现整个HTML页面时,document.ready将被触发,但是第二个函数(自调用匿名函数)呢。它是等待浏览器完成呈现页面还是在遇到页面时调用它?document.ready在“构造”DOM后运行。如果在构建DOM之前插入到
,则自调用函数会立即运行。(function(){…})()代码>将在Javascript中遇到时立即执行
加载文档后将执行$(document).ready()
<代码>$(函数(){…})
是$(document.ready()
的快捷方式,并执行完全相同的操作。
或short$(document).ready(函数(){…})
$(函数(){…})代码> 当
DOM准备就绪时调用此函数,这意味着您可以开始查询元素
将在不同的浏览器上使用不同的方法来确保DOM真正就绪.ready()
(函数(){…})()代码> 这只不过是一个函数,在浏览器解释您的
时尽快调用自己。因此,您不太可能在这里成功地操作ecma-/javascript
DOM元素
$(document).ready(函数(){…})
只是将该函数绑定到文档的ready
事件,因此,正如您所说,当文档加载时,事件将触发(函数($){…})(jQuery)
实际上是Javascript的一个构造,这段代码所做的就是将jQuery
对象作为参数传递到函数($)
中并运行该函数,因此在该函数中,$
始终指代jQuery
对象。这有助于解决名称空间冲突等问题因此,加载文档时执行#1,而立即运行#2,并使用名为
$
的jQuery
对象作为简写。当DOM(文档对象模型)准备好让JavaScript代码执行时,将执行以下代码
$(document).ready(function(){
// Write code here
});
上述代码的简称为:
$(function(){
// write code here
});
下面显示的代码是一个自调用的匿名JavaScript函数,将尽快执行
浏览器对其进行解释:
(function(){
//write code here
})(); // It is the parenthesis here that call the function.
下面显示的jQuery自调用函数将全局jQuery对象作为参数传递
到函数($)
。这使得$
可以在自调用函数中本地使用,而无需
遍历定义的全局范围。jQuery不是唯一一个使用$
的库,因此
减少潜在的命名冲突
(function($){
//some code
})(jQuery);
无论如何,
$(function(){})
相当于$(document).ready(function(){})
每当遇到自调用匿名函数时,都将执行该函数。另外,在屏幕上实际呈现文档和在内存中创建对象模型是不相关的。相关:在Backbone上使用哪种模式当他们有效地回答问题时,你应该真正接受问题的答案。您的接受率非常低。执行第一个的非jQuery方法是:document.addEventListener('domContentLoaded',function(){…})+1反对不必要的否决票。然而,你的回答中有一个小问题。自调用函数将在解析时发现的任何地方执行,并且不一定必须在
中,并且在构造初始DOM之后,规则也没有什么不同。@NimChimpsky I fuzzle(function(){});使用$(函数(){})。你是错误的反面;)我对(function(){…})()感到困惑代码>没有任何JS代码尽快运行吗?如果你说,在SIAF内部或外部有一个alert()
,效果不是一样吗?@skube是的,任何JS代码都会在解析器读取后立即运行,但是你可能会混淆SIAF前面是否有“$”。如果是这样,并且这个站点正在使用jQuery,那么这就是jQuery document.ready helper函数的缩写形式,它将安排给定函数在DOM可用时执行。helper函数本身将在读取后立即运行,但您提供给它的函数不会运行。非常简单、清晰、简洁地解释javascript闭包。