1

我已经知道将 Javascript 包装在这样的函数中的优点:

(function () {
    // code goes here
}())

但我已经看到一些脚本通过将包装函数传递给 jQuery 对象来实现这一点:

$(function () {
    // blah blah blah blah blah
});

这样做有什么好处,还是只是个人喜好问题?并且这样做是否会否定对 的需要$(document).ready()

4

3 回答 3

0

你的第一个例子只是标准的 JavaScript 一个自执行函数,第二个是 jQuery 特定的,是一个快捷方式$(document).ready(function () {});

请参阅jQuery 文档

还有这个问题以获取有关自我执行功能的更多信息

于 2013-08-21T08:30:39.057 回答
0

第一个

(function () {
    // code goes here
}())

那是自执行功能。

第二个功能是jquery具体的。

如果您看到文档

.ready() 方法只能在匹配当前文档的 jQuery 对象上调用,因此可以省略选择器。

.ready() 方法通常与匿名函数一起使用:

$(document).ready(function() {
  // Handler for .ready() called.
});

这相当于调用:

$(function() {
     // Handler for .ready() called.
    });
于 2013-08-21T08:30:49.940 回答
0

(function(){}())是一个 IIFE(立即调用函数表达式),只是一个正在执行的函数
$(function(){}),当浏览器准备好时,它是一个 jQuery 回调

我经常不得不将 jQuery 添加到上面有 mootools 的网站上,以避免 $ 冲突,我会这样做:

;(function($, app, undefined){
    // code here
}(jQuery, myApp = window.myApp || {}))
于 2013-08-21T08:36:55.823 回答