为了避免JavaScript代码中的全局变量,我多次看到人们使用这个结构:
(function($) {
// here code
// here code
})(jQuery);
所以我有疑问:为什么我们需要将函数参数声明为$
以及为什么我们需要将jQuery
对象作为参数传递?
答案 0 :(得分:1)
你不必。您可以将函数参数命名为您想要的任何名称。这只是人们使用jQuery的常见/最佳实践,因为通常使用$作为jQuery库对象的别名。
你应该这样做的原因是因为有其他库使用$作为其库对象的别名。需要避免与这些库的冲突,因为函数闭包将确保$成为包装函数内的jQuery对象。
以下是一个例子:
(function (myJqueryAlias) {
console.log(myJqueryAlias('document') === jQuery('document'));
})(jQuery);
答案 1 :(得分:0)
有了这个你存档,在这个块中你仍然有$ as jQuery,你仍然可以写“$(”selector“)”而不是“jQuery(”selector“)”。 在这个块之外,变量$仍然应该是它(例如你使用另一个使用$的JSLib)