我找到了那个代码
(function($) {
Batch = {
...
...
})(jQuery);
为什么将JQuery的引用作为参数传递?
答案 0 :(得分:1)
这是为了确保在该函数范围内,$
变量引用的是jQuery。
想象同一页面上的其他供应商库或脚本是使用$
变量:
$ = 42
...
(function() {
console.log($) //--> 42
})()
但是,如果您像片段中那样将全局jQuery
作为参数传递:
$ = 42
...
(function($) {
console.log($) //--> ƒ (a,b){return new n.fn.init(a,b)} (this is jQuery)
})(jQuery)
它仍将引用jQuery。这是因为在函数作用域内,参数优先于具有相同名称的外部作用域变量。
要了解有关javascript范围的更多信息,请选中this very good article
答案 1 :(得分:0)
当您要确保匿名自调用函数中的$等于Jquery而不是另一个库时,这很有用。