以下假设准确吗?
1)立即执行
(function(){
})();
2)文档准备好后执行
$(document).ready(function(){
});
3) 文档就绪的简写
$(function(){
});
4) on document 的替代简写,以避免跨脚本冲突
(function($) {
})(jQuery);
最佳答案
是的,对于前 3 个,您的定义是正确的:)
不过,除非你需要一个闭包,否则语句将立即执行,没有理由像 #1 那样将其包装起来(当然有很多有效的时间你需要一个闭包,只是注意如果你不这样做......它是多余)。
数字 4 但不正确,(function($) { })(jQuery);
不与任何事件绑定(bind),它只是一个闭包,因此 $ === 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);
关于javascript - jquery匿名函数声明的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930982/