我已经知道在这样的函数中包装Javascript的优点:
(function () {
// code goes here
}())
但是我看到一些脚本通过将包装函数传递给jQuery对象来实现这一目的:
$(function () {
// blah blah blah blah blah
});
这样做有什么好处,还是仅仅是个人品味的问题?并且第二种做法是否否定了$(document).ready()
的需要?
答案 0 :(得分:0)
你的第一个例子只是标准JavaScript一个自执行函数,第二个例子是jQuery特定的,是$(document).ready(function () {});
的快捷方式
以及this question有关自执行函数的更多信息
答案 1 :(得分:0)
第一个
(function () {
// code goes here
}())
That is self executing function.
第二个功能是jquery
特定的。
.ready()方法只能在与当前文档匹配的jQuery对象上调用,因此可以省略选择器。
.ready()方法通常与匿名函数一起使用:
$(document).ready(function() {
// Handler for .ready() called.
});
这相当于调用:
$(function() {
// Handler for .ready() called.
});
答案 2 :(得分:0)
(function(){}())
是一个IIFE(立即调用的函数表达式),它只是一个立即执行的函数
$(function(){})
是浏览器准备就绪时的jQuery回调
我经常要将jQuery添加到有mootools的网站上,以避免美元冲突,我会做这样的事情:
;(function($, app, undefined){
// code here
}(jQuery, myApp = window.myApp || {}))