有人可以解释一下这段代码的用途是什么吗?
(function($) {
$.cookie = function(key, value, options) {
// Body of the function here
}
})(jQuery);
以这种方式声明是不是更简单?
function cookie(key, value, options) {
// Body of the function here
}
答案 0 :(得分:6)
这称为闭包,以避免与使用$
的其他库发生冲突。这样,您可以确保在该函数中使用$
并将jQuery
作为参数传递。
(function ($) {
$(function () {
.......
});
})(jQuery); //<----passing jquery to avoid any conflict with other libraries.
喜欢 Mootools , prototype 等库也使用$
,这个闭包用来避免任何冲突。
答案 1 :(得分:4)
您正在创建一个接受$
的匿名函数,并且您正在调用它,并传递jQuery
。这会创建一个$
为jQuery
的闭包。也就是说,如果您知道jQuery
在执行时将是一个jQuery实例,那么您也知道$
将是该闭包中的jQuery实例实例。它可以防止可能定义$
的竞争框架。