jquery匿名函数声明的含义

以下假设是否准确?

1)立即执行

(function(){ })(); 

2)执行文件就绪

 $(document).ready(function(){ }); 

3)准备好文件的简写

 $(function(){ }); 

4)文档准备好的替代速记,以避免跨脚本冲突

 (function($) { })(jQuery); 

是的你的定义是正确的,前3个:)

虽然,除非你需要一个闭包,一个语句会立即执行,没有理由像#1一样包装它(肯定有很多有效的时间你需要一个闭包,只要注意你是否……它是多余的)。

但是数字4不正确, (function($) { })(jQuery); 没有绑定任何事件,它只是一个闭包,所以$ === jQuery里面,所以你可以使用$快捷方式:

 (function($) { //You may use $ here instead of jQuery and it'll work...even if $ means //something else outside of this closure, another library shortcut for example })(jQuery); 

这是你要找的#4:

 jQuery(function ($) { }); 

它将在document.ready上运行,在命名空间内运行,jQuery定义为$。