Pass jquery as a parameter to an autoexecutable function
本问题已经有最佳答案,请猛点这里访问。
我编写了那个代码
1 2 3 4 5 | (function($) { Batch = { ... ... })(jQuery); |
为什么将JQuery的引用作为参数传递?
这是为了确保在函数范围内,
想象一下,同一页面上的其他供应商库或脚本是使用
1 2 3 4 5 6 | $ = 42 ... (function() { console.log($) //--> 42 })() |
但是,如果您将全局
1 2 3 4 5 6 | $ = 42 ... (function($) { console.log($) //--> ? (a,b){return new n.fn.init(a,b)} (this is jQuery) })(jQuery) |
它仍将引用jQuery。 这是因为在函数范围内,参数优先于具有相同名称的外部范围变量。
要了解有关javascript范围的更多信息,请查看这篇非常好的文章
当你想确定你的匿名自调用函数中的$等于Jquery而不是另一个库时,它很有用。