jQuery使用函数

时间:2013-08-15 08:48:16

标签: javascript jquery

我不是很熟悉jQuery及其功能。 有谁知道这些声明在做什么? (顺便说一句,他们包装了整个.js内容)

(function ($) { 'use strict' ... })(jQuery);

(function () { 'use strict' ... })();

我想,第二个是匿名函数的声明,不能使变量在外部可访问。

我知道在加载DOM时会调用一个就绪函数。

$(function () { 'use strict' ... });

虽然我无法弄清楚前两个功能的作用。

4 个答案:

答案 0 :(得分:4)

它们是自我调用函数,保护范围。

注意第一个函数中的参数(jQuery)如何被接受为$。通过这种方式,您可以在任何地方使用短语法,同时仍然以非冲突模式运行。

答案 1 :(得分:3)

(function ($) { 'use strict' ... })(jQuery);

这将使$仅在自调用匿名函数的范围内可用,这意味着$不会污染全局范围,它将确保$为{ {1}}。如果有其他框架设置自己的jQuery(如原型),则函数闭包$内部将为$,因为jQuery是传入的参数,将被命名为在函数内部可用jQuery。 JavaScript中的局部范围变量优先于父范围。

$

这是一个自调用匿名函数,用作闭包,通常用于保存本地范围内的变量,而不是将它们泄漏到全局范围。

答案 2 :(得分:1)

(function ($) { 'use strict' ... })(jQuery);

这个用于确保代码中的$是jQuery。可能存在其他库或代码被覆盖的情况。但是这段代码确保$是函数范围内的jQuery。

因此,两种情况下的功能代码都用于范围功能。

答案 3 :(得分:0)

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

你可以认为这个语句分为2部分,(function ($) { ... })是创建一个匿名函数,(jQuery)是调用匿名函数,这类似于

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

其他一些库也将使用$(例如Zepto),因此将jQuery传递给参数$可以确保$引用{{ 1}},这个匿名函数可以为你的语句创建一个安全的范围。

对于jQuery,您可以在What does “use strict” do in JavaScript, and what is the reasoning behind it?

上阅读更多相关信息