Why need to pass jQuery object as parameter to closure?
本问题已经有最佳答案,请猛点这里访问。
为了避免JavaScript代码中的全局变量,我多次看到人们使用这个结构:
1 2 3 4 | (function($) { // here code // here code })(jQuery); |
所以我有疑问:为什么我们需要将函数参数声明为
你不必。 您可以将函数参数命名为您想要的任何名称。 这只是人们使用jQuery的常见/最佳实践,因为使用$作为jQuery库对象的别名是很常见的。
您应该这样做的原因是因为有其他库使用$作为其库对象的别名。 需要避免与这些库的冲突,因为函数关闭将确保$成为包装函数内的jQuery对象。
这是一个例子:
1 2 3 | (function (myJqueryAlias) { console.log(myJqueryAlias('document') === jQuery('document')); })(jQuery); |
有了这个你存档,在这个块你还有$ as jQuery,你仍然可以编写像"$("selector")"而不是"jQuery("selector")"的东西。
在这个块之外,变量$仍然是应该的(例如你使用另一个使用$的JSLib)