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定义为$。