将jquery作为参数传递给自动执行函数

时间:2019-04-03 14:23:56

标签: javascript jquery

我找到了那个代码

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

为什么将JQuery的引用作为参数传递?

2 个答案:

答案 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而不是另一个库时,这很有用。