jQuery插件的语法太奇怪了

时间:2013-10-02 15:33:26

标签: javascript jquery

我在下面的代码中对语法“(function($)”和“(jQuery)”的含义有点麻烦。

(function( $ ){
$.fn.myPlugin = function() {
    // Do your awesome plugin stuff here
};})(jQuery);

你能解释一下它们的含义吗?

如果我想将上面代码中的短语“(jQuery)”更改为“(abc)”那么如何操作以及如何使用它?

感谢您抽出宝贵时间回答我的问题。

2 个答案:

答案 0 :(得分:1)

function($)表示该函数接受一个参数,即变量$,它可以在函数内部访问(就像任何参数一样)。

$.fn.myPlugin正在使用该参数。

(function...)(jQuery)正在创建一个自动调用的函数块,并将jQuery作为参数传递。

这样做的关键是确保人们通常用来表示jQuery的$别名实际上是传递一个jQuery对象,而不是任何名为$的其他变量。

除非您在变量jQuery中进行abc实例化,否则没有充分理由将jQuery更改为abc

答案 1 :(得分:1)

它是一个立即调用的函数表达式。它允许您1)以任何变量仅限于其范围而不是污染窗口环境的方式包含代码,以及2)传入可在代码中使用的参数。

在这种情况下,Jquery$传入,因此您可以使用$安全知道您可以使用$,而不会与任何其他库发生冲突可能会将它用作别名。

如果存在abc,您当然可以传递jQuery以及abc

(function($, abc) {
  $.fn.myPlugin = function() {
   console.log(abc);
  }
}(jQuery, abc));