-1

有人可以解释一下这段代码是做什么的吗?

(function($) {
    $.cookie = function(key, value, options) {
         // Body of the function here
    }
})(jQuery);

以这种方式声明不是更简单吗?

function cookie(key, value, options) {
     // Body of the function here
}
4

2 回答 2

8

这称为闭包以避免与正在使用的其他库发生冲突$。这样,您可以确保$在该函数中使用并jQuery作为参数传递。

(function ($) {
   $(function () {
    .......
   });
})(jQuery); //<----passing jquery to avoid any conflict with other libraries.

Mootools原型等库也使用$这个闭包来避免任何冲突。

于 2013-04-16T11:10:07.607 回答
5

您正在创建一个接受 的匿名函数$,并立即调用它,传递jQuery. 这会创建一个闭包 where $is jQuery。也就是说,如果您知道jQuery在执行时它将是一个 jQuery 实例,那么您也知道这$将是该闭包中的一个 jQuery 实例。这是针对可能还定义$.

于 2013-04-16T11:11:03.720 回答