jquery匿名函数声明的含义

时间:2010-05-28 17:01:55

标签: javascript jquery

以下假设是否准确?

1)立即执行

(function(){
})();

2)执行文件准备

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

3)准备好文件的简写

$(function(){
});

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

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

2 个答案:

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