我想知道使用 jQuery 或不使用它的区别可能是考虑以下任务。我还没有找到任何答案。
jQuery:
jQuery(function() { alert("Hello World!"); })
$(function() { alert("Hello World!"); })
纯 JavaScript:
(function() { alert("Hello World!"); })()
有什么区别?我什么时候应该使用哪种方法?谢谢!
我想知道使用 jQuery 或不使用它的区别可能是考虑以下任务。我还没有找到任何答案。
jQuery:
jQuery(function() { alert("Hello World!"); })
$(function() { alert("Hello World!"); })
纯 JavaScript:
(function() { alert("Hello World!"); })()
有什么区别?我什么时候应该使用哪种方法?谢谢!
通常,$(function() { alert("Hello World!"); })
等待$(document).ready()
并且另一个函数(一个IIFE)立即触发。
但是 jQuery 包装函数是一个非常具体的用例(等待 DOM,使用 jQuery);你的两个例子是不相关的。不要将它们混淆为同一事物的两个版本。
jQuery 版本绑定在 DOM 加载后执行。闭包中的类型在定义后立即执行。因此,如果您希望它立即执行,请使用第二个版本,如果它应该等到所有内容都加载完毕,请使用第一个版本。
至少,这就是我的想法。
$(function(){
alert("hello world");
});
是以下的简写:
$(document).ready(function(){
alert("hello world");
});
因此它将在 DOM 加载后执行。
而你的纯 js 将在 DOM 加载之前执行。
主要区别在于 jQuery 函数是在加载 DOM 之后执行的。纯 JavaScript lambda 函数会立即执行(在其上下文中)。
第二个 jQuery 函数是第一个函数的简写。
您仍然可以将 JavaScript lambda 函数放在 jQuery 包装器中。这意味着 lambda 函数将在 DOM 加载后立即执行(感谢 jQuery 的处理)。