以下假设是否准确?
1)立即执行
(function(){
})();
2)执行文件准备
$(document).ready(function(){
});
3)准备好文件的简写
$(function(){
});
4)准备好文档的替代速记,以避免交叉脚本冲突
(function($) {
})(jQuery);
答案 0 :(得分:19)
是的,你的定义是正确的,对于前3:)
虽然,除非你需要一个闭包,否则会立即执行一个语句,没有理由像#1一样包装它(肯定有很多有效的时间你需要一个闭包,只要注意你是不是......它是多余)。
但是数字4不正确,(function($) { })(jQuery);
与任何事件无关,它只是一个闭包,因此它内部有$ === jQuery
,因此您可以使用$
快捷方式:< / p>
(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);
答案 1 :(得分:9)
这是你要找的#4:
jQuery(function ($) {
});
它将在document.ready上运行,在命名空间内运行,jQuery定义为$。