为什么需要将jQuery对象作为参数传递给闭包?

时间:2013-09-02 11:46:37

标签: javascript jquery

为了避免JavaScript代码中的全局变量,我多次看到人们使用这个结构:

(function($) {
    // here code
    // here code
})(jQuery);

所以我有疑问:为什么我们需要将函数参数声明为$以及为什么我们需要将jQuery对象作为参数传递?

2 个答案:

答案 0 :(得分:1)

你不必。您可以将函数参数命名为您想要的任何名称。这只是人们使用jQuery的常见/最佳实践,因为通常使用$作为jQuery库对象的别名。

你应该这样做的原因是因为有其他库使用$作为其库对象的别名。需要避免与这些库的冲突,因为函数闭包将确保$成为包装函数内的jQuery对象。

以下是一个例子:

(function (myJqueryAlias) {
     console.log(myJqueryAlias('document') === jQuery('document'));
})(jQuery);

答案 1 :(得分:0)

有了这个你存档,在这个块中你仍然有$ as jQuery,你仍然可以写“$(”selector“)”而不是“jQuery(”selector“)”。 在这个块之外,变量$仍然应该是它(例如你使用另一个使用$的JSLib)